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

问题描述 投票:2回答:1

在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个回答
3
投票

从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等现有工具来实现这一目标。

© www.soinside.com 2019 - 2024. All rights reserved.