2

首先,我知道这个问题之前已经出现过,但是我发现的所有建议的解决方案都没有解决我的问题......

与设备配对后

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;             
}

这给了我失败0 - 连接被拒绝失败1 - 文件描述符处于错误状态 fail2 - 文件描述符处于错误状态 文件描述符处于错误状态

为什么会导致这个问题,我该如何解决?

4

1 回答 1

0

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

于 2013-04-25T07:00:43.240 回答