系统相关
首页 > 系统相关> > linux-BlueZ:不使用sdptool命令添加服务,属性和配置文件

linux-BlueZ:不使用sdptool命令添加服务,属性和配置文件

作者:互联网

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

浏览本地记录

#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主版本中将其删除,如以下链接所示:-

> Link 1
> Link 2
> Link 3

幸运的是,大多数命令已被更新的命令(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,

>注册完成here.
>方法已实现here.

建立此配置文件的连接后,NewConnection API为called,其中fd为自变量.

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

标签:bluetooth,bluez,linux
来源: https://codeday.me/bug/20191108/2008087.html