国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 藍牙2.0的使用方法詳解

2020-01-02 07:00:40
字體:
來源:轉載
供稿:網友

本文為大家分享了Android操作藍牙2.0的使用方法,供大家參考,具體內容如下

1.Android操作藍牙2.0的使用流程
(1)找到設備uuid
(2)獲取藍牙適配器,使得藍牙處于可發現模式,獲取下位機的socket,并且與上位機建立建立連接,獲取獲取輸入流和輸出流,兩個流都不為空時,表示連接成功。否則是連接失敗。
(3).與下位機的socket開始通信。
(4).通信結束后,斷開連接(關閉流,關閉socket)

2接下來接直接上代碼:
2.1找到設備uuid(一般廠商都會給開發者提供)

復制代碼 代碼如下:
UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 

2.2與藍牙設備建立連接

BluetoothAdapter myBluetoothAdapter = null;//藍牙適配器 BluetoothServerSocket mBThServer = null;//上位機<span style="font-family: Arial, Helvetica, sans-serif;">ServerSocket</span> BluetoothSocket mBTHSocket = null;//下位機的socket InputStream mmInStream = null;//輸入流 OutputStream mmOutStream = null;//輸出流 <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">    </span>
myBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();//獲取適配器 Set<BluetoothDevice> pairedDevices = myBluetoothAdapter     .getBondedDevices();//獲取適配器下的所有藍牙設備 if (pairedDevices.size() > 0) {   for (Iterator<BluetoothDevice> iterator = pairedDevices       .iterator(); iterator.hasNext();) {     BluetoothDevice device = (BluetoothDevice) iterator         .next();     if (DEVICE_NAME1.equals(device.getName())         || DEVICE_NAME2.equals(device.getName())         || DEVICE_NAME3.equals(device.getName())         || DEVICE_NAME4.equals(device.getName())) {       try {         myBluetoothAdapter.enable();//將適配器設置可用         Intent discoverableIntent = new Intent(             BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);// 使得藍牙處于可發現模式,持續時間150s         discoverableIntent             .putExtra(                 BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,                 150);         mBTHSocket = device             .createRfcommSocketToServiceRecord(MY_UUID);//獲取下位機的socket          int sdk = Integer.parseInt(Build.VERSION.SDK);         if (sdk >= 10) {           mBTHSocket = device               .createInsecureRfcommSocketToServiceRecord(MY_UUID);         } else {           mBTHSocket = device               .createRfcommSocketToServiceRecord(MY_UUID);         }          mBThServer = myBluetoothAdapter             .listenUsingRfcommWithServiceRecord(                 "myServerSocket", MY_UUID);監聽可用的設備         mBTHSocket.connect(); // 建立連接         mmInStream = mBTHSocket.getInputStream();// 獲取輸入流         mmOutStream = mBTHSocket.getOutputStream();// 獲取輸出流        } catch (IOException e) {         ett.setText("設備連接異常!");       }       if ((mmInStream != null) && (mmInStream != null))// 二者不為空時,表示連接成功,否則連接失敗       {         ett.setText("設備連接成功!");       } else {         ett.setText("設備連接失敗!");       }       break;     }   } } 

2.3開始發送數據,并且讀取數據(字節數組)                    

 if ((mmInStream == null) || (mmInStream == null)) {   Readflage = -2;// 連接異常   return; } mmOutStream.write(cmd_find);//寫入查找指令 Thread.sleep(200); int datalen = mmInStream.read(recData);//讀取數據 

 注意:cmd_find和recData都是字節數組byte[].
以上代碼就一次發送指令和讀取數據的步驟。很簡單吧

2.4斷開連接

if ((mmInStream == null) || (mmInStream == null)) {   return; } //關閉流和socket mmOutStream.close(); mmInStream.close(); mBTHSocket.close(); mBThServer.close(); 

最后總結一下,基本就3大步,第一建立連接,第二發送數據讀取數據,第三步斷開連接。今天就這些了,以后會寫關于藍牙4.0 ble 在Android中的使用,這兩個還是有很多不同的,大家請期待。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米脂县| 定襄县| 柳河县| 绥阳县| 平湖市| 金华市| 岑巩县| 巢湖市| 策勒县| 巴林右旗| 重庆市| 海林市| 海安县| 锡林郭勒盟| 舒兰市| 融水| 个旧市| 永新县| 曲麻莱县| 崇礼县| 宁津县| 洪雅县| 波密县| 永嘉县| 昌都县| 通州区| 普陀区| 岢岚县| 五寨县| 平陆县| 乐昌市| 峡江县| 鞍山市| 福清市| 肇州县| 油尖旺区| 神木县| 嘉义市| 应用必备| 芜湖县| 文登市|