CoreBluetooth:刷新已发现的外围设备的本地名称

sae*_*ppi 10 bluetooth ios core-bluetooth cbperipheral

我成功发现了外围设备并检索其本地名称:

[advertisementData objectForKey:CBAdvertisementDataLocalNameKey]
Run Code Online (Sandbox Code Playgroud)

但是,如果外围设备停止并重新启动具有不同本地名称的广告,则客户端无法识别该更改.我猜

- (void)peripheralDidUpdateName:(CBPeripheral *)peripheral
Run Code Online (Sandbox Code Playgroud)

仅在两个设备配对时才有效.有没有办法在没有配对的情况下获得更新?

bio*_*ffe 5

Apple的错误.仍然存在于iOS 6.1中.以下是如何重置CB缓存的技巧:

  1. BackUP设备到iCloud.
  2. 重置网络设置.
  3. 删除您的应用并通过Xode安装回来
  4. 此时,您的外围设备将显示新名称.
  5. 手动恢复网络设置或从iCloud恢复.

抱歉.

  • 哦,男孩哦,男孩...... CoreBluetooth API太棒了..(null UUIDs,愚蠢的缓存问题.. arrrr) (5认同)
  • 可悲的是,仍然存在于iOS8中:( (2认同)