10

我正在开发一个与蓝牙 LE 外围设备通信的应用程序。我目前正在测试的外围设备就是其中之一。有趣的是,有时当我发现它时,我会得到它的正确名称“SimpleBLEPeripheral”,有时我只是得到(null). 似乎没有任何命令可以发送到 CBPeripheral 以强制读取更新名称,那么如何确保我真正获得了外设的广告名称?

4

2 回答 2

12

如果您从advertisingData NSDictionary 中获取名称,它将始终是外围设备发送的广告数据包中的名称。

但是,如果您阅读 CBPeripheral 对象的 name 属性,则该名称可能会有所不同。我们尝试提供当时已知的最佳名称。如果我们还没有连接到外围设备,我们将从广告包中提供名称。如果过去已经建立了与外围设备的连接,我们将读取 GAP 名称。我们认为 GAP 名称比广告包中的名称“更好”(由于广告包的大小限制)。

于 2012-09-04T14:12:26.903 回答
3

我发现解决此问题的唯一方法是开始扫描和停止扫描,最终我希望在物理空间中找到的所有设备都显示为非零名称和非零 UUID。

于 2013-06-17T21:46:27.190 回答