0

我正在尝试将 BTLE 外围设备连接到我的 iOS 应用程序,但发送到 didDiscoverPeripheral 的 CBConcretePeripheral 对象的 UUID 为空。

这是从 iPhone 5 上检索到的 CBConcretePeripheral 对象的信息。

<CBConcretePeripheral: 0x20043eb0 UUID = (null), Name = "Wahoo HRM V1.7", IsConnected = NO>

这适用于某些设备,但不适用于其他设备。

这是从 iPhone 4s 上检索到的 CBConcretePeripheral 对象的信息。

<CBConcretePeripheral: 0x1dde9720 UUID = <CFUUID 0x1dde9400> 5147BE71-E894-0152-5669-D640CA5E321C, Name = "Wahoo HRM V1.7", IsConnected = NO>
4

1 回答 1

0

Apple对此进行了一些改动和更改,这取决于iOS的版本。我相信这与隐私泄露有关。

某些版本的 iOS 直到您连接到它之后才提供 UUID,此时您会再次发现相同的外围设备。您传递的CBPeripheral对象保持不变,因此您可以使用它来确定您是否正在更新有关现有外围设备的信息,或者它是否是新外围设备。该文档不适用于 CoreBluetooth,但通过阅读框架标题可以获得更多信息,如果我没记错的话,CoreBluetooth 上的 iOS 7 文档得到了改进。

于 2013-07-23T15:46:16.473 回答