我正在用 python 开发一个使用 bluez 和 dbus 的简单应用程序。该应用程序应与蓝牙设备(Raspberry Pi)配对。我曾经配对失败,现在我不仅无法重现错误,甚至找不到该设备了。
我做了什么:
- 扫描所有设备(使用开始发现()实现对象的函数org.bluez.Adapter1界面)
- 检查每个找到的设备,看它的 MAC 地址是否与我要查找的 MAC 地址匹配
- 找到我要找的设备后,我使用它的路径创建一个代理对象(使用bus.get_object('org.bluez',设备路径))
- 我创建org.bluez.device1此对象上的接口(dbus.接口(device_obj,'org.bluez.Device1'))
- 我将此接口的“Trusted”属性设置为 True
- 我打电话给一对()此接口上的函数
这导致配对尝试失败 - 这种情况只发生过一次,我无法找到错误原因。此外 - 我尝试配对的 Raspberry Pi 上的蓝牙停止工作:我无法再进行广告宣传。重新启动并重新安装 bluez 并没有帮助,我不得不重新刷新 SD 卡并安装全新的操作系统,以使 RPi 上的蓝牙再次正常工作。
在应用程序方面,我可以扫描并查看所有其他 BT 设备,除了我未能配对的设备。我尝试重新启动,并在虚拟环境中重新安装我的代码。
如果我运行蓝牙扫描程序,我能够看到我正在寻找的 RPi。bluetoothctl 配对设备列表为空。我相信问题一定出在我的应用程序中。
我真的很困惑,如果能得到任何提示或建议我将非常感激。