CoreBluetooth:外设的UUID是设备的固有属性?

时间:2015-01-15 02:51:49

标签: android ios uuid core-bluetooth

我使用 CoreBluetooth 将我的iPhone连接到配备蓝牙4.0 的设备。

我打印它(作为外设)UUID:

<CBPeripheral: 0x1742fca80, identifier = B148AD69-1FC7-498C-016F-33BA3BE041A3, name = HMSoft, state = disconnected>

我想知道这个标识符设备的固有属性

由于我在 android 中使用以下代码来获取 UUID ,这与我在iPhone中使用 CoreBluetooth 所获得的不同:

 BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
 for (ParcelUuid uuid : device.getUuids()) {
                    Log.d("UUID", uuid.getUuid().toString());
                }

(我使用相同的设备连接,但打印UUID不同)。

2 个答案:

答案 0 :(得分:0)

CBPeripheral中的标识符是随机生成的唯一标识符。这会随着时间而变化。对于CBPeripheral,我们需要了解两种UUID。一个是ServiceUUID,另一个是CharacteristicsUUID。每个外围设备通过每个服务广播数据单个服务可以具有多个特征。例如。设备信息服务可以将设备名称,设备版本等作为其特征。

请参阅下图,以便更好地理解CBPeripheralApple docs在这方面说得很好。

答案 1 :(得分:0)

我的第一个回答,所以我希望自己不会愚弄自己; - )

BluetoothDevice.getUuids(): 返回远程设备支持的功能(UUID)。即设备公布的服务的UUID,而不是设备本身的UUID。 我目前正在寻找一种Android方式来获取已发现的BLE设备的UUID ...