如何清除MacOS上的CoreBluetooth缓存?

时间:2013-12-12 20:49:54

标签: macos core-bluetooth

我正在开发蓝牙LE设备,因为MacOS缓存了这些服务而遇到了麻烦。如果我尝试删除服务或在我正在开发的设备上更改其UUID,则更改不会显示在Mac上,而是继续从设备中看到旧的服务列表和UUID。我尝试去另一台没有与我的设备配对的Mac,它看到了具有正确UUID的新服务列表,所以它似乎是我的开发Mac的缓存问题。

我在/ Library / Preferences中找到com.apple.Bluetooth.plist文件并将其删除,但是系统将其放回原来的相同数据,我认为系统已将缓存加载到内存中并且只是将其写回在需要时出来。

有人知道如何擦除MacOS CoreBluetooth设备/服务缓存吗?

2 个答案:

答案 0 :(得分:33)

我终于找到了问题的根源 - 在名为ByHost的文件夹中的用户首选项文件夹中有一个缓存。以下是清除蓝牙缓存的步骤:

  • 关闭蓝牙
  • 从中删除com.apple.Bluetooth.plist /库/首
  • 删除名为的文件 来自的com.apple.Bluetooth.somehexuuidstuff.plist 〜/ Library / Preferences / ByHost(注意这是用户偏好 文件夹,而不是系统之一)
  • 开启蓝牙

在执行此操作后,我的外围设备服务被正确识别。从我在网上找到的,在/ Library / Preferences中可能还有一些与HID或耳机或其他东西相关的com.apple.Bluetooth文件 - 我不知道删除那些是否很重要,因为我没有把它们放在我的系统上。

答案 1 :(得分:0)

您还可以通过终端中的以下命令清除缓存:

sudo rm /Library/Preferences/com.apple.Bluetooth.plist && sudo shutdown -r now

这与约翰之前解释的一样;确保您没有正在进行/未保存的进程(因为此命令将重新启动您的机器)。