我使用BlueZ 5.30和内核3.13.0-32,我需要通过DBus在我的应用程序中实现读/写特性function。
我正在使用BlueZtesting脚本build立连接:
“testing发现”,然后是“testing设备连接”。
问题是我没有看到DBus(org.bluez)中显示的任何服务。 使用d脚应用程序,我只能看到:
“/ org / 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接口可用。
这里是我的BlueZconfiguration:“./configure –prefix = / usr –mandir = / usr / share / man –sysconfdir = / etc –localstatedir = / var –enable-library –disable-systemd – enable-experimental –enable-maintainer-mode –enable-debug“
我在这里看:“ http://i-miss-erin.blogspot.com/2010/12/gatt-related-dbus-api.html ”但正如我所提到的,没有任何界面或服务显示这里。
为了testing我使用接近和隐藏设备。 在隐藏的情况下,正确的连接后,我可以看到在terminal窗口(隐藏键盘设备)的字符,所以我假设它正常工作。
有什么build议么?
您必须激活您的蓝牙设置的实验功能才能启用GATT服务。
在Debian系统上,你可以通过放置来实现
NOPLUGIN_OPTION="-E"
进入/etc/default/bluetooth
文件。
重新启动后,为了使我的设备(Logitech MX Master)在Debian Stretch上正常工作,我还必须使用bluetoothctl
命令手动配对并信任它。 我从Gnome的图形蓝牙工具没有成功。