1
我一直在这一整天挠我的脑袋。我有一个用于监听设备的蓝牙套接字。这是通过AsyncTask完成的。我第一次尝试从远程设备连接到它时,我没有任何问题。现在我试图模拟断开连接。通过超出范围,关闭远程设备的蓝牙适配器,或者远程关闭连接。现在服务器套接字在连接丢失时抛出IOException。我用这个作为我的提示重新启动AsyncTask并重新开始收听。这似乎工作正常,所有我的logcat消息显示在重新启动,所以我知道任务正在运行,但套接字不会接受连接。认为这可能是重新启动AsyncTask时出现的一个问题,我尝试在接受后立即抛弃连接。重置它们之后,即使我调用system.gc(),我仍然有同样的问题。Java蓝牙插座不会在重新启动后接受连接
继承人一些代码,我现在使用测试:
boolean running = true;
while(running){
btAdapter = BluetoothAdapter.getDefaultAdapter();
btServerSocket = btAdapter.listenUsingRfcommWithServiceRecord(NAME, ID);
btSocket = btServerSocket.accept();
btServerSocket.close();
btSocket.close();
btServerSocket = null;
btSocket = null;
btAdapter = null;
System.gc();
sleep(10);
}
我真的不知道我在做什么错。任何帮助是极大的赞赏。
谢谢。