2012-09-12 36 views
2

我收到異常,每當我試圖連接到Android設備bluettoth啓用設備,它正在連接和withina幾分鐘,它正在得到例外。 要使用BLuettoth設備(SPP配置文件)連接,我使用Android藍牙:軟件導致連接中止

Method m; 
m = mmDevice.getClass().getMethod("createRfcommSocket", 
new Class[] { int.class }); 

tmp = (BluetoothSocket) m.invoke(mmDevice, 1); 

使用此代碼,我能夠連接到該設備。但在這一行字節= mmInStream.read(緩衝區),我得到異常withina幾分鐘。我可以用

if(mmInStream.available() > 0) { 
bytes = mmInStream.read(buffer); 
} 

但是,如果我在這裏提出的條件,就不能瞭解設備是否仍連接或不與其他設備。因爲不會發生異常。 我無法找到解決方案,並嘗試了2天。但我找不到解決方案。

你能幫我嗎?

在此先感謝

+0

[官方原因爲「軟件導致連接中止:套接字寫入錯誤」]的可能的重複(http://stackoverflow.com/questions/2126607/official-reasons-for-software-caused-connection-abort-socket-寫錯誤) – EJP

回答

0

我有與藍牙廣播後啓動服務器相同的問題。解決方案是在服務器通過BluetoothServerSocket.accept()建立連接後發送一個字節。客戶端在BluetoothSocket.connect()之後讀取一個字節。所以兩端同步。