2014-03-30 17 views
3

我正在嘗試在Linux上通過bluez構建bluetooh服務。根據該教程[http://people.csail.mit.edu/albert/bluez-intro/x604.html],需要連接到本地SDP服務器才能註冊該服務。但是「sdp_connect(BDADDR_ANY,BDADDR_LOCAL,SDP_RETRY_IF_BUSY)」在這裏返回NULL,顯然,與藍牙有關的所有服務在我的Fedora上運行沒有任何問題。每當我嘗試通過命令「sdptool browse local」獲得有關SDP本地服務器的信息時,我會收到以下消息:「在FF:FF:00:00:00:連接被拒絕時無法連接到SDP服務器」。一些用戶說,爲了使用sdp_connect,有必要運行sdpd,這裏沒有包含sdpd的二進制包,但我認爲sdpd現在是Fedora上的bluetoothd的一部分,所以當sdp_connect嘗試時sdp服務器應該運行連接。爲什麼sdp_connect不工作?在Fedora 20上使用bluez註冊sdp服務

+0

你有沒有藍牙設備連接?對我來說,它看起來像設備無法註冊藍色或bluetoothd沒有運行 – ashish

回答

7

你必須用--compat標誌開始bluetoothd。我不知道這是否是「Fedora方式」,但是我編輯了/usr/lib/systemd/system/bluetooth.service並在ExecStart選項中包含了該標誌。

ExecStart=/usr/libexec/bluetooth/bluetoothd --compat 

然後

$ systemctl daemon-reload 
$ systemctl restart bluetooth.service 
+1

這種解決方法也適用於Ubuntu 16.04。需要編輯'/ lib/systemd/system/bluetooth.service'並執行'sudo systemctl daemon-reload && sudo service bluetooth restart' – Michele

相關問題