我已经与蓝牙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