Linux BlueZ dbus通信

我使用BlueZ 5.30和内核3.13.0-32,我需要通过DBus在我的app中实现读/写特性功能.

我正在使用BlueZ测试脚本建立连接:

“测试发现”,然后是“测试设备连接”.

问题是我没有在DBus(org.bluez)中看到任何服务.使用d-feet app我只能看到:

“/组织/ bluez的/ hci0 / dev_btaddr”
    接口
    org.bluez.Device1
    org.freedesktop / DBus.Introspectable
    org.freedesktop.DBus.Properties

在“/ var / log / syslog”中我可以看到很多:

“bluetoothd [715]:无法为设备注册带有句柄0x0045的GATT服务……”

使用gatttool我能够读/写特性,原色等.在hcidump下我看到所有特性都被正确读取.

但是,从DBus PoV只有Device1接口可用.

这是我的BlueZ配置:

./configure –prefix = / usr –mandir = /usr/share / man –sysconfdir = / etc –localstatedir = / var –enable-library –disable-systemd –enable-experimental –enable-维护者模式–enable-debug

我在这里看:“http://i-miss-erin.blogspot.com/2010/12/gatt-related-dbus-api.html”,但正如我所提到的,没有任何显示在这里的界面或服务.

对于测试我使用接近和隐藏设备.
在隐藏的情况下,在正确连接后,我可以在终端窗口中看到字符(隐藏键盘设备),所以我认为它可以正常工作.

有什么建议?

解决方法:

您必须激活蓝牙设备的实验性功能才能启用GATT服务.

在Debian系统上,您可以通过put实现此目的

NOPLUGIN_OPTION="-E"

进入/ etc / default / bluetooth文件.

重新启动后,为了让我的设备(Logitech MX Master)在我的Debian Stretch上正常工作,我还必须使用bluetoothctl命令手动配对并信任它.我没有成功使用Gnome的图形蓝牙工具.

上一篇:QT 5.8 用QNetwork 上传图片到php服务器,并通过url下载图片


下一篇:java – 如何提高Android蓝牙低功耗GATT吞吐量?