Android蓝牙套接字连接挂起

Android蓝牙套接字连接挂起,android,bluetooth,connection,rfcomm,Android,Bluetooth,Connection,Rfcomm,我遇到了一个问题,当我调用sock.connect()时,它会无限期地挂起。没有异常,也没有超时 try { Method m = dev.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); sock = (BluetoothSocket) m.invoke(dev, 1); sock.connect(); T

我遇到了一个问题,当我调用sock.connect()时,它会无限期地挂起。没有异常,也没有超时

try
    {
        Method m = dev.getClass().getMethod("createRfcommSocket", new     Class[] {int.class});          
        sock = (BluetoothSocket) m.invoke(dev, 1); 
        sock.connect();
        Thread.sleep(100);
        in = sock.getInputStream();
        out = sock.getOutputStream();
    }
    catch(ConnectTimeoutException ex)
    {
        return false;
    }
    catch(IOException ex)
    {
        return false;
    }
    catch(Exception ex)
    {
        return false;
    }
原因是另一个应用程序已经在使用蓝牙设备。我试图使我的连接失败,至少抛出一个异常或其他东西,让我知道设备已被另一个应用程序使用

还有其他的建议吗


谢谢。

你为什么打电话给Thread.Sleep?BluetoothSocket.connect是一个阻塞调用。这意味着您的Thread.Sleep将不会被调用,直到connect返回成功的连接或抛出异常

你把这叫做活动吗?因为这会影响你的活动。您应该有3个线程来处理蓝牙,一个接受线程,一个连接线程和一个连接线程。就像这里的BluetoothChat示例:


您能解决它吗?我面临着类似的问题。