蓝牙socket.connect() - android拒绝连接

时间:2012-04-18 10:26:16

标签: android bluetooth connection

首先,我知道此问题已经出现过,但我发现的任何一种解决方案都没有解决我的问题......

将设备与

配对后
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);

我尝试使用

进行连接
boolean connected = false;
String cause = "";
for(int i=0; i<3; i++){
    try {
        mmSocket.connect(); 
    } catch (IOException e) {
        Log.e("btact","fail"+i+" - "+e.getMessage());
        cause = e.getMessage();
        continue;
    }
    connected = true;
}

if(!connected){
    try {
        mmSocket.close();
    } catch (IOException e2) {
        Log.e(TAG, "unable to close() " + mSocketType +
                " socket during connection failure", e2);
    }

    Log.e("----btact----", cause);
    connectionFailed();
    return;             
}

这给了我 fail0 - 连接被拒绝 fail1 - 处于错误状态的文件描述符 fail2 - 处于错误状态的文件描述符 文件描述符处于错误状态

Whay可能会导致此问题,我该如何解决?

1 个答案:

答案 0 :(得分:0)

@Radu,对于API 10及更高版本,我们可以使用createInsecureRfcommSocketToServiceRecord和 listenUsingInsecureRfcommWithServiceRecord,它工作正常! 对于API 9,我被迫使用它作为API中的方法不工作 - http://mobisocial.stanford.edu/news/2011/03/bluetooth-reflection-and-legacy-nfc/