欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 藍牙2.0的使用方法詳解

 更新時間:2016年03月10日 14:30:17   作者:請叫我小東子  
這篇文章主要為大家詳細介紹了Android 藍牙2.0的使用方法,分享了Android操作藍牙2.0的使用流程,一些具有參考價值的代碼,感興趣的小伙伴們可以參考一下

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

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

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

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

2.2與藍牙設(shè)備建立連接

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();//獲取適配器下的所有藍牙設(shè)備 
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();//將適配器設(shè)置可用 
        Intent discoverableIntent = new Intent( 
            BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);// 使得藍牙處于可發(fā)現(xiàn)模式,持續(xù)時間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);監(jiān)聽可用的設(shè)備 
        mBTHSocket.connect(); // 建立連接 
        mmInStream = mBTHSocket.getInputStream();// 獲取輸入流 
        mmOutStream = mBTHSocket.getOutputStream();// 獲取輸出流 
 
      } catch (IOException e) { 
        ett.setText("設(shè)備連接異常!"); 
      } 
      if ((mmInStream != null) && (mmInStream != null))// 二者不為空時,表示連接成功,否則連接失敗 
      { 
        ett.setText("設(shè)備連接成功!"); 
      } else { 
        ett.setText("設(shè)備連接失??!"); 
      } 
      break; 
    } 
  } 
} 

2.3開始發(fā)送數(shù)據(jù),并且讀取數(shù)據(jù)(字節(jié)數(shù)組)                    

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

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

2.4斷開連接

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

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

相關(guān)文章

最新評論