哪裏是藍牙服務發現協議(SDP)守護進程?藍牙SDP - 哪裏是sdpd?
我想註冊使用的bluez Debian的V8.0藍牙服務。我使用示例代碼https://people.csail.mit.edu/albert/bluez-intro/。一切順利,直到我試圖
sdp_connect(BDADDR_ANY, BDADDR_LOCAL, 0);
其失敗。一些挖後,我發現SDP進程(使用sdpd)(以它需要連接)未運行,實際上並不甚至我的系統上。
我試了一下:
- 我已經安裝(apt-get的)每藍牙或bluez的包似乎遠程相關,但仍然沒有使用sdpd。
- 我試圖用我的Android手機(使用相同的代碼)地址進行連接。這工作得很好,但當然是沒用的。
- 難道對這個問題的詳盡的谷歌搜索,但沒有找到明確的答案。很多關於hcid,pand等的討論,但沒有關於這些相關性的明確答案。
我的目標:
我想我的Debian系統上登記自己的服務,讓我可以從其他藍牙設備連接到它(尤其是我的Android)。該服務運行良好,沒有SDP註冊就無法找到它。
我很高興能夠使用它的(已知)頻道號直接連接到它,但Android只能通過註冊服務UUID連接(即使用BluetoothDevice.createRfcommSocketToServiceRecord(uuid)
),但我看不到API連接到頻道。
有趣的是,我可以通過通道數,而不是周圍的其他方式連接到在Android的服務。我認爲也許sdpd已經過時了 - 所有的參考資料都有幾年的歷史了。
感謝您的建議。我有一個輕微(我認爲)與新來源apt-get更新的問題。有什麼似乎是警告「以下簽名無法驗證,因爲公鑰不可用:...」。我認爲這只是一個警告。我嘗試了apt-cache搜索「jessie」,「backports」,「bluez」等任何東西,但沒有看到任何相關的東西尚未安裝。我也被「DEBIAN_FRONTEND = ...」這一行所困惑。那去哪了? – DontPanic
我建議你在安裝新的之前首先卸載你的藍牙軟件包(我將其添加到我的答案中)。通過apt-get安裝'blueman'的backport版本應該可以獲得所有你需要的(backport或not)依賴關係 - 請參閱:https://packages.debian.org/jessie-backports/blueman。不知道你的「...公共密鑰不可用:...」警告,它不應該發生。在你添加backports到你的'/ etc/apt/sources.list'之後,你應該運行apt-get update(我把它添加到我的答案中)。 'DEBIAN_FRONTEND =非交互'位是可選的,以使其無輔助地運行。 –
另請注意,我相信通過藍牙進行連接並將您的外部設備安裝爲卷並將文件/文件夾複製並粘貼到設備/計算機上的能力已經在Debian 8上「逐步淘汰」了。現在他們迫使您使用「推送」系統(或稱爲「推送」系統),以便您可以在計算機/設備上選擇一個文件/文件夾,並將其「推送」到另一個文件/文件夾。在Debian 8上,我永遠不會有2個窗口顯示設備和計算機的文件,並在窗口之間複製和粘貼(可惜)。即使推送功能只與backport軟件包一起工作。 –