【问题标题】:BlueZ showing old cached data on DBUSBlueZ 显示 DBUS 上的旧缓存数据
【发布时间】:2017-09-12 19:14:50
【问题描述】:

我对 BlueZ(Ubuntu 16.04 中的股票版本 5.37)有一个非常奇怪的问题。我正在开发蓝牙外围设备,我只有一个开发套件。在其固件中,我更改了广播的名称。当我使用时:

hcitool lescan

,显示我的设备的更新名称。但是当我使用 Qt5 库时,会扫描旧名称。在 DBUS 中查看显示旧名称已被缓存。有没有办法强制 DBUS 重新加载所有参数?或者以某种方式倾倒所有东西?

【问题讨论】:

  • 在您的固件中,您是否从 org.bluez.Adapter1 接口写入“别名”属性?
  • 值得注意的是,这不是 D-Bus 问题,而是 BlueZ(或您使用 BlueZ 的方式)的问题。 D-Bus 只是一个 IPC 协议,并不是这里的缓存。

标签: dbus bluez


【解决方案1】:

事实证明,BlueZ 确实保留了蓝牙设备缓存。可以在

中找到

/var/lib/蓝牙

在以 MAC 地址命名的文件夹中。删除他们的内容并重新启动蓝牙服务为我解决了这个问题。

【讨论】:

  • 天哪,我以为我要疯了,直到我发现这个,在我的嵌入式设备中创建了新特性,尽管 Bluez 和我的 Android 版本较旧,但我的 Qt 应用程序和 Bluez 都不会看到新特性手机看到上述特点。我还必须删除缓存目录(计算机的 BT MAC 地址目录)中与我的嵌入式 BLE 设备的 MAC 地址相关的一些信息。感谢一百万的回答。
  • 我推断这一定是正在发生的事情,这里是确认它的答案。奇怪的“缓存”行为。谢谢!
  • 顺便说一句,禁用此缓存,编辑 /etc/bluetooth/main.conf 确实对我有用。 spinics.net/lists/linux-bluetooth/msg90150.html
猜你喜欢
  • 2019-02-24
  • 2015-10-01
  • 2015-12-25
  • 2016-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多