我正在开发一个与蓝牙LE外设通信的应用程序。我现在正在测试的外设是these中的一个。有趣的是,有时当我发现它时,我会得到它的正确名称"SimpleBLEPeripheral",有时我只会得到(null)。似乎没有任何命令可以发送到CBPeripheral来强制对名称进行读取更新,那么如何确保我实际上获得了外设的通告名称?
发布于 2012-09-04 22:12:27
如果您从advertisingData NSDictionary获取该名称,它将始终是外围设备发送的通告数据包中的名称。
但是,如果读取CBPeripheral对象的name属性,则该名称可能会有所不同。我们试图为我们提供当时已知的最好的名字。如果我们尚未连接到外围设备,我们将提供通告数据包中的名称。如果过去已连接到外设,我们将读取间隙名称。我们认为GAP名称是比广告数据包中的名称更好的名称(由于广告数据包的大小限制)。
发布于 2013-06-18 05:46:27
我发现解决这个问题的唯一办法是开始扫描并停止扫描,最终我希望在物理空间中找到的所有设备都显示为非nil名称和非nil UUID。
https://stackoverflow.com/questions/12265028
复制相似问题