2011-12-29 60 views
2

我正在使用listenUsingInsecureRfcommWithServiceRecord和 createInsecureRfcommSocketToServiceRecord調用,以便將一個Android設備連接到另一個Android設備。創建不安全的RFCOMM套接字仍然需要配對

在第一個設置我有一個Nexus One和一個Nexus S都運行 Android 2.3.6 - 在這個設置,連接沒有彈出「配對 請求」對話框。

在第二設置我嘗試同樣的Nexus One與三星Galaxy S2 運行Android 2.3.3 - 在此設置「配對請求」 對話框彈出做兩個設備上。這很奇怪,因爲兩個設備都在 API級別10上,這應該支持不安全的連接。

還有其他人碰到這種奇怪的行爲?有人可以驗證 ,這是2.3.3中的一個問題,或者可能在特定型號I 中測試過?有什麼解決方法嗎?

如有需要,我可以從logcat發佈相關部分。

+0

你知道兩個設備上的藍牙版本嗎 – 2011-12-31 20:24:50

+0

據我所知Nexus one有2.1和Galaxy S2有3.0。 – smichak 2011-12-31 21:45:27

+0

請注意,在相同API級別的Android版本之間會有很多變化(這就是這些版本之間的點)。例如,在Android 2.3.5之前,您只能啓用120秒的可見性,而不是永久性的。我會想象配對要求可能是這些事情中的一個變化。 – 2013-02-01 16:43:49

回答

3

每藍牙v2.1,GAP,第5.2.2節:

當兩個設備都支持安全簡單配對,GAP將默認爲需要 未經認證的鏈路密鑰和啓用加密。

所以要啓用加密藍牙需要創建一個鏈接密鑰...因此需要進行SSP配對。

不知道是否有可能避免在Android。

否則處理身份驗證事件並確認對 - 該對非常有可能是隻需要確認的「Just Works」表單(不需要密碼等)。

相關問題