我使用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