我使用 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不同)。
答案 0 :(得分:0)
CBPeripheral中的标识符是随机生成的唯一标识符。这会随着时间而变化。对于CBPeripheral,我们需要了解两种UUID。一个是ServiceUUID,另一个是CharacteristicsUUID。每个外围设备通过每个服务广播数据单个服务可以具有多个特征。例如。设备信息服务可以将设备名称,设备版本等作为其特征。
请参阅下图,以便更好地理解CBPeripheral。 Apple docs在这方面说得很好。
答案 1 :(得分:0)
我的第一个回答,所以我希望自己不会愚弄自己; - )
BluetoothDevice.getUuids()
:
返回远程设备支持的功能(UUID)。即设备公布的服务的UUID,而不是设备本身的UUID。
我目前正在寻找一种Android方式来获取已发现的BLE设备的UUID ...