【发布时间】:2014-06-26 07:44:49
【问题描述】:
我有一个 iOS 应用程序作为外围设备和一个 OS X 应用程序作为中心,使用 CoreBluetooth 框架。 OS X 应用程序连接到 iOS 应用程序,它们通过读取加密特征并输入随机代码来结合。一切正常,直到 iOS 应用程序重新启动。从那时起,每次我连接到 iOS 设备并尝试读取其任何特征时,它都会返回“句柄无效”-错误。解决此问题的唯一方法是从 OS X 的蓝牙首选项中删除设备并重新启动绑定过程。
我怀疑这个问题是由 OS X 对我设备的服务和特性的缓存引起的,因为当我使用两台 iOS 设备在重启后相互连接时没有出现该问题。
我正在寻找一种方法来清除我的服务和特征的 OS X 缓存。我熟悉删除com.apple.Bluetooth.plist并重新启动blued进程/打开/关闭蓝牙的方法。 (Does blued cache ATT values, and how to clear the cache? 和 How can I clear the CoreBluetooth cache on MacOS?)
但是,删除 com.apple.Bluetooth.plist 需要我再次绑定 iOS 设备并输入代码。有什么方法可以清除缓存,但只能使用与我的应用相关的服务/特征?
【问题讨论】:
-
基本问题,但让我们从这里开始:连接成功后你会重新发现一切吗?
-
@allprog 是的,我重新发现了我的应用所需的服务和特性。
标签: macos caching bluetooth core-bluetooth iobluetooth