我使用BlueZ 5.30和内核3.13.0-32,我需要通过DBus在我的应用程序中实现读/写特性功能。Linux BlueZ dbus通信
我使用的BlueZ测试脚本来建立连接:
“测试发现”,然后在“测试设备连接”。
问题是我没有看到DBus(org.bluez)中显示的任何服务。使用d英尺的应用程序,我只能看到:
“/组织/ bluez的/ hci0/dev_btaddr” 接口 org.bluez.Device1 org.freedesktop/DBus.Introspectable org.freedesktop.DBus.Properties
和 “在/ var/log/syslog的” 我可以看到很多的:
“bluetoothd [715]:无法注册与手柄0x0045用于设备GATT服务......” 使用gatttool我
能读/写特征,初选等在hcidump我看到al l的特性被正确读取。
但是,从DBus PoV只有Device1接口可用。
这里是我的配置的BlueZ: “ 的./configure --prefix =/USR --mandir =的/ usr/share/man的--sysconfdir = /等--localstatedir =/VAR --enable-库 - -disable-systemd --enable-实验--enable-维护模式--enable-调试 “
我一直在寻找在这里:” http://i-miss-erin.blogspot.com/2010/12/gatt-related-dbus-api.html“,但正如我所说,没有哪个是任何接口或服务显示在这里。
对于测试,我使用接近和隐藏设备。 在隐藏的情况下,正确的连接后,我可以看到终端窗口中的字符(隐藏键盘设备),所以我认为它可以正常工作。
有什么建议吗?
我解决了我的问题。这个问题是由bluetoothd在没有“-E”的情况下运行造成的,它使BlueZ的实验部分成为可能。 –
你是如何在启动过程中添加-E的?我一直试图将它添加到/etc/init.d/bluetooth中的守护进程中,但似乎并没有办法。你在哪里添加它? – Brook