我使用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的图形蓝牙工具.