listenUsingRfcommWithServiceRecord(String name,UUID uuid)不工作

时间:2012-12-03 23:53:57

标签: android sockets bluetooth

所以我试着让这段代码运行

public AcceptThread() {
    // Use a temporary object that is later assigned to mmServerSocket,
    // because mmServerSocket is final
    mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    BluetoothServerSocket tmp = null;
    try {
        // MY_UUID is the app's UUID string, also used by the client code
        tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("Server", MY_UUID);
    } catch (IOException e) { }
    mmServerSocket = tmp;
}

但是当我从应该分配tmp的行继续时它仍然是null。蓝牙被激活,除了它之外的一切,当我到达它时,它根本不会设置tmp。任何想法为什么不呢?顺便说一下。这个方法不适用于2.2安卓机器,因为它在我的2.2机器上的那一行崩溃但不在我的4.1.2设备上崩溃。

如果需要更多信息以便能够回答,请直接提出要求并尽可能地给予它。

2 个答案:

答案 0 :(得分:1)

发现我没有允许该应用程序使用蓝牙如此解决。

答案 1 :(得分:1)

我是Android开发的新手,遇到了同样的问题。如果其他人遇到这个问题,这里会有更多帮助:

因为这是在服务器端发生的,所以在启动接受连接线程之前,请确保已启用可发现性。这可以通过在接收到正确的resultCode时在onActivityResult()方法中启动线程。