2010-09-02 236 views
3

我要試着簡單介紹一下我正在做的事情,然後 然後提出我的問題......任何幫助將非常感謝!Android藍牙PBAP

我一直在嘗試將Android設備連接到其他手機,以便 通過藍牙導入其電話簿信息,使用電話簿 訪問配置文件。爲了達到這個目的,我試圖將我的設備作爲PCE, ,而另一部手機將作爲PSE。

我知道PSE角色已經在Android上實現了,所以我在 正在調查其代碼,並嘗試以某種方式將其逆向工程到 實現另一方。

所以..我的問題是:創建服務器套接字時,它不會 指定任何UUID,它只是開始偵聽端口19上,像這樣:

mServerSocket = mAdapter.listenUsingRfcommOn(PORT_NUM); 

不是麼應該在某處註冊PBAP服務?如何 其他設備發現的服務,更重要的是,它試圖在我的PCE設備與連接時UUID 我應該使用:

mSocket = mDevice.createRfcommSocketToServiceRecord(UUID_PBAP); 

謝謝,佩德羅。

+0

您是否能夠製作PBAP客戶端?如果可以,請指導我在建立PBAP連接後必須做些什麼來獲取電話簿詳細信息?這是我可以做到目前爲止http://stackoverflow.com/questions/23948610/how-to-query-remote-mobile-phone-via-bluetooth-as-to-whether-it-supports-pbap-or – SoulRayder 2014-06-03 11:50:49

回答

0

請使用此方法:使用BluetoothAdapter的listenUsingRfcommWithServiceRecord和正確的UUID。

1

您應該使用uuid創建客戶端套接字,sdp會爲您找到相應的通道。

你不需要關心頻道號碼,你指定的頻道並不總是正確的。

+2

問題是關於服務器端(PBAP PSE)是如何註冊的以及客戶端如何使用SDP發現,而無需看到正確的服務器端註冊。這個答案只是說使用SDP,但沒有解釋爲什麼以及如何工作。這個問題也可以更清楚地解釋SDP查詢的結果 - 是否有效?或不?如果有效,那麼UUID-RFCOMM頻道可能正在某處登錄。 – gammay 2012-09-07 05:54:44