首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式启用/禁用蓝牙配置文件

以编程方式启用/禁用蓝牙配置文件
EN

Stack Overflow用户
提问于 2016-10-05 05:40:24
回答 1查看 4.1K关注 0票数 2

我在Raspberry 3上运行,使用的是USB/蓝牙dongle (blueZ) 5.4。

/etc/bluetooth/main.conf具有Class = 0x0c0408。我有一个Qt5应用程序,它支持蓝牙设备,并接受任何传入的配对请求。

我可以成功地从我的智能手机连接到所有启用的蓝牙配置文件: A2DP和HFP。

现在,我想让用户选择应该启用的配置文件。因此,我正在寻找一种方法来启用/禁用在线A2DP和HFP。从C++、bash或python脚本都可以。

我不能仅仅更改类值,因为我不能重新启动蓝牙服务-我必须继续运行GATT服务器。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-14 04:28:22

可以使用sdptool命令来启用和禁用Bluez中的任何配置文件/服务。如果要启用任何配置文件/服务,可以使用:

sdptool add A2SRC

以同样的方式禁用您可以使用的任何服务/配置文件:

代码语言:javascript
复制
sdptool del A2SRC

更多信息可以通过sdptool的帮助找到。

代码语言:javascript
复制
    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://unix.stackexchange.com/questions/92255/how-do-i-connect-and-send-data-to-a-bluetooth-serial-port-on-linux

如果你需要进一步澄清,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39866179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档