【问题标题】:BlueZ: Adding services, attributes, and profiles without sdptool commandBlueZ:不使用 sdptool 命令添加服务、属性和配置文件
【发布时间】:2019-04-03 19:22:38
【问题描述】:

在 BlueZ 5 之前,在 Linux 上添加/删除蓝牙服务/属性/配置文件的方法是通过 sdptool 完成的,如下所示:-

浏览本地记录

#sdptool browse local
Browsing FF:FF:FF:00:00:00 ...

添加服务

#sdptool add SP
Serial Port service registered

删除服务

#sdptool del 0x10007
Service Record deleted.

但是,sdptool 已被弃用(连同 hciattach、hciconfig、hcitool、hcidump、rfcomm、ciptool 和 gatttool)并从 BlueZ 主构建中删除,如以下链接所示:-

幸运的是,这些命令中的大多数已被更新的命令(btattach、btmgmt 和 bluetoothctl)所取代。但是,sdptool 似乎没有任何替代品。

我的问题是:- 我现在可以使用什么工具代替 sdptool 来浏览本地服务/配置文件以及添加或删除配置文件?

请注意,我知道 sdptool 可以重新构建和启用,但我正在寻找命令的替换而不是解决方法。

【问题讨论】:

    标签: linux bluetooth bluez


    【解决方案1】:

    从 Bluez 5 开始,这需要使用 ProfileManager DBUS 接口来完成。需要使用此界面注册自定义/外部配置文件,Bluez 会处理安全和连接的所有方面。

    一旦连接准备好,bluez 会提供文件描述符来操作外部配置文件。您可以在bluez-alsa 中找到 HFP 配置文件的示例实现。

    具体来说,您可以实现org.bluez.Profile1 interface 的所有方法,并使用org.bluez.ProfileManager1 interface 将其注册到Bluez,您可以在其中指定UUID、auth(如果需要)。

    在 bluez-alsa 中,

    1. 注册完成here。
    2. 方法实现here。

    一旦建立此配置文件的连接,NewConnection API 即为 called,参数中包含 fd。

    但是 AFAIK,没有任何直接的方法可以使用现有工具(如 bluetoothctl)来实现这一点。

    【讨论】:

      猜你喜欢
      • 2015-02-18
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-28
      • 2015-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多