BlueZ:在没有sdptool命令的情况下添加服务,属性和配置文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BlueZ:在没有sdptool命令的情况下添加服务,属性和配置文件相关的知识,希望对你有一定的参考价值。

在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可以重建并启用,但我正在搜索命令的替换而不是解决方法。

答案

从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就是带有fd in参数的called

但是AFAIK,没有任何直接的方法可以使用bluetoothctl等现有工具来实现这一目标。

以上是关于BlueZ:在没有sdptool命令的情况下添加服务,属性和配置文件的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙bluez命令

BlueZ 4.99 中的蓝牙健康设备配置文件 (HDP) 接收器实现?

Linux命令行如何接受没有pin的蓝牙设备配对

Bluez 自动重新连接设备

BlueZ:更改本地存储目录

有没有办法增加 BlueZ 中的 BLE 广告频率?