我使用BlueZ 5.30和内核3.13.0-32,我需要通过DBus在我的app中实现读/写特性功能。
我正在使用BlueZ测试脚本建立连接:
“test-discovery”,然后是“test-device connect”。
问题是我没有在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”但正如我所提到的,这里没有任何界面或服务。
对于测试我使用接近和隐藏设备。 在隐藏的情况下,在正确连接后,我可以在终端窗口中看到字符(隐藏键盘设备),所以我认为它可以正常工作。
有什么建议吗?
答案 0 :(得分:3)
您必须激活蓝牙套装的实验性功能才能启用GATT服务。
在Debian系统上,您可以通过添加
来实现这一目标
NOPLUGIN_OPTION="-E"
进入/etc/default/bluetooth
文件。
重新启动后,为了让我的设备(Logitech MX Master)在我的Debian Stretch上正常工作,我还必须使用bluetoothctl
命令手动配对并信任它。我没有成功使用Gnome的图形蓝牙工具。