Android蓝牙设备UUID

时间:2014-02-07 01:12:13

标签: java android bluetooth bluetooth-lowenergy

我正在尝试使用蓝牙4.0(LE)连接到蓝牙外围设备。我正在关注找到here的Android开发人员页面中的指南。

我已经在iOS上成功构建了这个应用程序,这是我第一次使用Android。我正在运行4.4版。我希望能够在Android设备进行蓝牙搜索时检查找到的外围设备的UUID(就像我在iOS上做的那样)。我不知道该怎么做,但我相信它会发生在这种方法中:

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

          //DETERMINE UUID OF PERIPHERAL

    }

任何人都可以告诉我如何做到这一点?

谢谢!

1 个答案:

答案 0 :(得分: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搜索,你需要一些workaround(至少对于当前的Android版本4.4.4)

This post有一些关于scanRecord字节数组结构的详细信息。

相关问题