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);
}
我真的不知道我在做什麼錯。任何幫助是極大的讚賞。
謝謝。