2011-03-23 197 views
16


有誰可以告訴我如何找出連接到其他設備時使用哪種配對技術手機?
我有一個Nexus S(Android 2.3.3)和一個BT設備(藍牙2.1 + EDR)。
當我嘗試將它們配對時,我不必提供任何輸入(密鑰)。由於兩款設備都有藍牙2.1,我想知道他們使用了哪種配對技術。
我們可以指定手機的配對技巧嗎?Android藍牙配對

回答

17

當兩臺設備均爲2.1或更高版本時,使用安全簡單配對(SSP)而不是舊配對(傳統配對是需要用戶在兩臺設備上輸入相同PIN以進行連接並且大多數情況下PIN曾經是衆所周知的0000或1234的通用組合)

安全簡單配對簡化了流程,擺脫了輸入PIN碼的需要,相反它會自動生成6位密碼作爲配對過程的一部分,用戶可能只需要驗證/輸入一個或多個設備上的密鑰。

安全簡單配對(SSP)進一步具有幾種不同的關聯模式,要使用的關聯模型由試圖配對的設備上的顯示和輸入功能決定。

當沒有顯示或輸入在其中一個設備上輸入6位數字時,「Just works」關聯模型被使用,在此配對期間不需要用戶輸入。在Android中,使用createInsecureRfcommSocketToServiceRecord()API時,可以強制這個模型是SPP應用程序。沒有任何顯示或輸入能力與耳麥,其它小型設備配對時,該模型被常用

其他關聯模型是:

  • 數字比較 - 如果兩個設備和用戶上示出了6位數字被要求確認他們是否一樣。當兩個設備都有顯示並且能夠輸入是/否時使用。密鑰條目 - 當其中一個設備只具有輸入能力且沒有輸出顯示能力,另一個具有輸出/顯示能力時,此處用戶將被要求在具有輸入能力的設備上輸入6位數字作爲顯示在支持顯示的設備上。

  • 帶外 - 設備通過不同的頻道(除了藍牙)交換配對信息,例如NFC或其他安全機制。

+1

感謝您的回覆。我知道這些關聯模式。我想知道如何在建立連接時找出其中哪些正在使用。我試圖連接與Desire相同的設備。當連接和連接成功時,它顯示「Just works」模式。Nexus S不會發生這種情況。如何找出與Nexus S連接時發生了什麼問題。 – Ashwini 2011-03-24 03:42:59

+0

慾望和Nexus S都是2.3.3嗎?如果是,那麼行爲應該是相同的..不連接可能是因爲別的東西 – 2011-03-24 04:11:41

+2

慾望是2.2和Nexus是2.3.3。我認爲這是SDK錯誤,所以升級Nexus到2.3.3,但它在2.2上工作。那麼它是藍牙設備實現中的錯誤嗎? – Ashwini 2011-03-25 10:00:04

4

您可以嗅探藍牙流量或記錄日誌以確定正在使用哪種技術。在Nexus-S $ adb shell中,hcidump -XVt會顯示日誌。如果I/O功能正在與其藍牙2.1配對交換。

另一種方法是在init.herring.rc文件中啓用bluetoothd日誌,您可以確定使用哪種配對方法。

它最明顯的藍牙2.1配對在你的情況和問題是在別處。