我在Raspberry 3上运行,使用的是USB/蓝牙dongle (blueZ) 5.4。
/etc/bluetooth/main.conf具有Class = 0x0c0408。我有一个Qt5应用程序,它支持蓝牙设备,并接受任何传入的配对请求。
我可以成功地从我的智能手机连接到所有启用的蓝牙配置文件: A2DP和HFP。
现在,我想让用户选择应该启用的配置文件。因此,我正在寻找一种方法来启用/禁用在线A2DP和HFP。从C++、bash或python脚本都可以。
我不能仅仅更改类值,因为我不能重新启动蓝牙服务-我必须继续运行GATT服务器。
有什么想法吗?
发布于 2016-10-14 04:28:22
可以使用sdptool命令来启用和禁用Bluez中的任何配置文件/服务。如果要启用任何配置文件/服务,可以使用:
sdptool add A2SRC
以同样的方式禁用您可以使用的任何服务/配置文件:
sdptool del A2SRC更多信息可以通过sdptool的帮助找到。
sdptool - SDP tool v5.37
Usage:
sdptool [options] <command> [command parameters]
Options:
-h Display help
-i Specify source interface
Commands:
search Search for a service
browse Browse all available services
records Request all records
add Add local service
del Delete local service
get Get local service
setattr Set/Add attribute to a SDP record
setseq Set/Add attribute sequence to a SDP record
Services:
DID SP DUN LAN FAX OPUSH FTP PRINT HS HSAG HF HFAG SAP PBAP MAP
NAP GN PANU HCRP HID KEYB WIIMOTE CIP CTP A2SRC A2SNK AVRCT AVRTG
UDIUE UDITE SEMCHLA SR1 SYNCML SYNCMLSERV ACTIVESYNC HOTSYNC
PALMOS NOKID PCSUITE NFTP NSYNCML NGAGE APPLE IAP ISYNC GATT 现在,您可以启用和禁用任何配置文件/服务。
移到第二个问题,如何远程让智能手机用户启用和禁用配置文件。这可以通过蓝牙中的串口配置文件(SPP)来实现。简单介绍一下,SPP是基于蓝牙的串口仿真。它基于RFcomm协议,可与A2DP和HFP并行使用。
因此,这里的想法是创建SPP连接从智能手机到RSP,然后发送命令,以启用和禁用配置文件。SPP可以从命令行使用蓝光可用的rfcomm命令。有关如何使用该命令的更多信息,请参见:
如果你需要进一步澄清,请告诉我。
https://stackoverflow.com/questions/39866179
复制相似问题