2013-08-23 23 views
0

我的應用連接到BT設備併發送和接收一些數據,然後暫停,直到用戶選擇如何繼續。然後建立的連接正在使用,應用程序繼續。某些Nexus鬆散的藍牙連接上的Android 4.3

但是,在某些Nexus 4.3設備上,系統會暫停建立的藍牙連接,當用戶被問及如何提前時。在此暫停期間,BT連接上沒有通信

這不會發生在所有Android 4.3設備上,僅在某些設備上發生。我嘗試了幾個全新的,沒有問題。但是一些已經使用Nexus的用戶報告了這個問題。

我甚至嘗試關閉連接,重新建立與我在開始時使用的完全相同的代碼。但是我得到了各種各樣的錯誤。

這是我如何關閉連接:

public void resetConnection() { 
if (mmInStream != null) { 
    try { 
    mmInStream.close(); 
    } catch (Exception e) { 
      ...log it 
    } 
    mmInStream = null; 
} 

if (mmOutStream != null) { 
    try { 
    mmOutStream.close(); 
    } catch (Exception e) { 
      ...log it  } 
    mmOutStream = null; 
} 

if (mmSocket != null) { 
    try { 
    mmSocket.close(); 
    } catch (Exception e) { 
      ...log it  } 
    mmSocket = null; 
} 

} 

基本上連接我使用此代碼Disconnect a bluetooth socket in Android

所有的Android版本和內核都在工作和非工作裝置相同。但「使用過的」設備(即使在重新啓動後 - 不會重置)有這個問題 - 但到目前爲止,所有設備都可以在出廠重置後解決問題。

任何想法可能是這些Nexus 4.3的問題,以及如何解決它?

當然不是每個用戶都只是想在他的手機上重新設置一個出廠設置 - 而且我不確定這總是能夠解決問題。

不幸的是,我的手中沒有這樣的Nexus導致問題 - 否則我可以調試它並嘗試。所以我完全處於黑暗中,在這裏,BT與4.3正在發生什麼。

回答

1

我有一個nexus 3,我確認了這個問題。我的工作是定期通過藍牙進行通信。如果您停頓超過2或3秒,藍牙將始終斷開連接。在我的應用程序中,我設法不等待幾秒鐘的用戶輸入,然後應用程序每100ms讀取一次傳感器,並且不會斷開連接。

+0

非常感謝!我想我必須這樣做:-(因爲重新連接不起作用 – user387184