Joo*_*ost 3 macos caching bluetooth iobluetooth core-bluetooth
我有一个iOS应用程序充当外围设备和OS X应用程序充当核心,使用CoreBluetooth框架.OS X应用程序连接到iOS应用程序,它们通过读取加密特征并输入随机代码进行绑定.一切正常,直到iOS应用程序重新启动.从那时起,每次我连接到iOS设备并尝试读取它的任何特征时,它都会返回"Handle is invalid" - error.解决此问题的唯一方法是从OS X的蓝牙首选项中删除设备并重新启动绑定过程.
我怀疑这个问题是由OS X缓存我的设备的服务和特性引起的,当我重新启动一个iOS设备后,我发现这个问题没有出现.
我正在寻找的是一种清除OS X缓存我的服务和特性的方法.我熟悉删除com.apple.Bluetooth.plist并重新启动蓝色进程/打开/关闭蓝牙的方法.(是否发蓝缓存ATT值,以及如何清除缓存?和我如何清除在MacOS的CoreBluetooth缓存?)
但是,删除com.apple.Bluetooth.plist需要我再次与iOS设备绑定并输入代码.有没有办法清除缓存,但只能使用与我的应用程序相关的服务/特性?
事实证明它比我想象的要容易.在com.apple.Bluetooth.plist中,有一个CoreBluetoothCache密钥,其中包含一些包含一些缓存服务和内容的字典.棘手的部分是编辑缓存,而不是在整个上面写蓝色.无论如何,这是要走的路(在终点站):
sudo defaults write /Library/Preferences/com.apple.Bluetooth CoreBluetoothCache -dict
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.blued.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.blued.plist
Run Code Online (Sandbox Code Playgroud)
在此之后,CoreBluetooth实际上重新发现了服务并以正确的方式读取特征.
| 归档时间: |
|
| 查看次数: |
2347 次 |
| 最近记录: |