CoreBluetooth设备名称更改

use*_*638 3 bluetooth ios core-bluetooth cbperipheral

我目前正在创建一个简单的iOS蓝牙应用程序.我目前有一个能够修改名称的设备.我发现的是,当我连接到CBPeripheral设备时,它似乎正在缓存旧的设备名称.

  1. 通过我的应用程序连接到设备.
  2. 通过我的应用程序断开设备连接.
  3. 更改设备的名称.
  4. 通过我的应用程序(使用现有的CBPeripheral对象)重新发现/重新连接到设备.

按照上面的步骤,我希望我的iOS应用程序能够发现新的设备名称.但是,我发现它倾向于保留旧名称.通过两次断开CBPeripheral设备,我发现我可以检索新名称.

所以我的问题是,有没有办法更新或清除CBPeripheral现有的已发现特征(或每次重新发现新特征)以获取最新的设备名称?

这是一个类似的问题:CoreBluetooth:刷新已发现的外围设备的本地名称

ben*_*nka 12

我有一个类似的问题,而且这只是设备名称的问题,但在特定模式下更改了一些特征(如设备上的固件升级).

得到了苹果的以下答案:
"答案是配件需要支持GATT服务变更特性 - 请阅读规范,特别是第3卷,第G部分,2.5.2和第3卷,第G部分,第7.1部分."

通过在广告数据中将设备名称作为属性进行广告来解决名称问题.(但是这可能需要特定的固件,因为它并不总是在adv包中具有该属性)

否则重置核心蓝牙缓存:你需要重新启动我无法在iOS上以编程方式进行的iOS蓝牙适配器.