2014-02-07 253 views
1

我試圖使用藍牙4.0(LE)連接到藍牙外圍設備。我正在從Android開發者頁面找到指南hereAndroid藍牙設備UUID

我已經在iOS上成功構建了這個應用程序,這是我第一次使用Android。我正在運行版本4.4。我希望能夠檢查發現的外設的UUID(就像我在iOS上做的那樣),當Android設備進行藍牙搜索時。我不知道如何做到這一點,但我相信它發生在這個方法:

public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) { 
     Log.i(TAG, "New LE Device: " + device.getName() + " @ " + rssi); 

      //DETERMINE UUID OF PERIPHERAL 

    } 

誰能告訴我這可怎麼辦呢?

謝謝!

回答

1

您可以搜索設備只爲你指定的UUID:(Android BLE Doc

public boolean startLeScan (UUID[] serviceUuids, BluetoothAdapter.LeScanCallback callback) 

但是,有在Android版本4.4.4爲known issues用這種方法,可以在將來改變。

您可以在16位UUID搜索中成功使用此方法,但它會在Nexus設備上以128位UUID失敗。 (爲我工作在三星S5)。

如果你想堅持使用128位的UUID搜索,你需要一些(至少目前Android版本4.4.4)

This post有大約scanRecord字節數組構造一些好的細節。