【发布时间】:2022-11-03 13:25:43
【问题描述】:
我对蓝牙开发很陌生,但目前正在通过开发一些基本的 python 脚本来建立我的理解。 我正在使用 Bluez 5.58、python 3.9 和 dbus。
到目前为止,我能够扫描和连接到设备以及在连接后监控属性,我使用https://www.bluetooth.com/blog/the-bluetooth-for-linux-developers-study-guide/ 作为大部分项目的指南。
现在,我正在尝试找到一种方法来列出已发现设备的 BLE 配置文件,然后再决定在 cmdline 中连接到哪个设备,例如:
设备名称:[[BLEprofiles],bdaddr1]
设备名称:[[BLEprofiles],bdaddr2]
我对 BLE 配置文件很陌生,但据我了解,它们是“特定用例的标准服务集合”,描述了属性表的角色、要求和结构。 正如我发现的那样,使用 bluez 和 dbus 似乎没有任何直观的方法可以在连接之前列出配置文件并检查兼容性。 SDPtool 似乎对此很有用,但 Bluez 5+ 不支持。
我的第一个想法是使用标准的 SIG UUID (https://www.bluetooth.com/specifications/assigned-numbers/) 来匹配,但这似乎也需要与 bluez 和 dbus 连接。 在能够判断它是否适合用例之前必须连接到设备似乎是相当倒退的。例如,如果我想将手机连接到扬声器以播放音频但不知道扬声器的名称,我想查看哪些设备支持 A2DP 或类似的音频配置文件。
可以在不连接的情况下在 dbus/bluez 中列出 BLE 配置文件吗? 如果需要连接,实现列表的最佳方式是什么?
谢谢你的帮助!
【问题讨论】:
标签: bluetooth bluetooth-lowenergy android-bluetooth dbus bluez