我已經與藍牙API玩弄爲Android 2.2(API級別8,HTC慾望)並具有使用連接到嵌入式藍牙裝置的應用程式:Android的藍牙連接安全不安全
device.createRfcommSocketToServiceRecord(DEV_UUID);
這產生的配對請求符合市場預期,但簡化連接過程中,我想避免用戶交互時配對感動到API 10級(HTC Desire採用的CyanogenMod 7),所以我可以使用:
device.createInsecureRfcommSocketToServiceRecord(DEV_UUID);
當測試這也適用如預期的那樣(連接沒有親mpting用戶對),但是當我嘗試與2.2我得到一個連接被拒絕異常之前創造條件API級別10的安全RfcommSocket ...
java.io.IOException: Connection refused
at android.bluetooth.BluetoothSocket.connectNative(Native Method)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:204)
據我所知這應該仍然工作以同樣的方式,提示用戶配對?
編輯:
使用下面的代碼就又試了試,結果是相同的(不安全的工作,但不是安全的),我會盡量讓我的手股票2.3設備上測試。
try {
Method m = dev.getClass().getMethod("createInsecureRfcommSocketToServiceRecord", new Class[] { UUID.class });
BluetoothSocket bs = (BluetoothSocket)m.invoke(dev, devUUID);
Log.d("TEST", "Method Invoked");
bs.connect();
Log.d("TEST", "Connected to socket");
bs.close();
Log.d("TEST", "Closed Socket");
}
這可能是無關的,但你見過? http://stackoverflow.com/questions/3353080/android-2-1-htc-desire-is-there-a-bluetooth-problem-corruptedstreamexceptio – Jack
謝謝傑克,這些問題似乎是由2.1引起的,所以希望我不應該'不會受到影響,我會嘗試使用反射的連接,看看是否有幫助。 – DarkRyuu