Android蓝牙设备UUID
问题描述:
我试图使用蓝牙4.0(LE)连接到蓝牙外围设备。我正在从Android开发者页面找到指南here。Android蓝牙设备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
}
谁能告诉我这可怎么办呢?
谢谢!
答
您可以搜索设备只为你指定的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字节数组构造一些好的细节。