【问题标题】:Android Bluetooth device UUIDAndroid 蓝牙设备 UUID
【发布时间】:2014-02-07 01:12:12
【问题描述】:

我正在尝试使用蓝牙 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

    }

谁能告诉我这是怎么做到的?

谢谢!

【问题讨论】:

    标签: java android bluetooth bluetooth-lowenergy


    【解决方案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 字节数组结构的很好的细节。

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多