Linux BlueZ dbus通信

我使用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的图形蓝牙工具没有成功。