【发布时间】:2018-05-22 12:31:12
【问题描述】:
在我的 iOS 应用程序中,我能够成功连接到 BLE 外围设备、发现服务并订阅特性,以便在特性值发生变化时通知应用程序。只要应用程序在后台运行,所有这些都不会出现问题。
但是当状态恢复发生时会出现问题。在centralManager:willRestoreState: 方法中,我可以使用retrieveConnectedPeripheralsWithServices: 方法检索以前连接的外围设备。但是当我在检索到的外围设备上调用 discoverServices: 方法时,什么也没有发生。 peripheral:didDiscoverServices: 方法永远不会被调用。检索到的外围设备的 services 属性的值也为 null。 iOS 不会缓存服务和特征吗?
注意:我们的 BLE 外设最初会宣传服务。当应用程序第一次启动时,它会从外围设备读取值并将用户特定的数据写入特性。写完后,周边停止广告服务。但是固件工程师声称,即使服务被外围设备停止,从状态恢复中检索到的外围设备也应该有缓存的服务。是真的吗?
【问题讨论】:
标签: ios bluetooth-lowenergy core-bluetooth cbperipheral cbcentralmanager