2011-08-18 152 views
1

我運行在Android和Adobe AIR的多線程應用程序,在原生Android 2藍牙插槽都設置了一對夫婦的服務器線程的AIR應用程序與原生Android的藍牙插口進行通信。它基本上是套接字編程,它可以在我用來編程的一個設備上工作。藍牙Android的問題

我開發這個應用的設備是緩慢的,因此我又買了一個平板電腦測試(機器人織女),這是非常快的,在我的通訊藍牙數據,因爲它有2.1edr版本。

問題是與Advent Vega平板電腦的藍牙流只是斷開連接沒有明顯的原因間歇性地和在adb日誌窗口我剛剛嘗試連接到設備突然間斷時發生,我沒有提到在日誌的任何地方發生崩潰,這同時發生在兩個藍牙連接的線程上,所以它必須與藍牙無線電進行懷疑。其他平板設備運行的應用程序很好,但速度較慢(無斷開)。我甚至在vega上安裝了一個自定義3.0 ROM,以查看它是否是os問題,但斷開連接問題仍然存在於3.0。

由於事實上存在亞行日誌中沒有這個何況我基本上只是在屏幕,不知道爲什麼它斷開,現在2天盯着!在斷開連接後再次運行應用程序的唯一方法是重新啓動設備上的藍牙,但最終在下次運行時會再次斷開連接。它似乎提高了它在重新啓動後第一次運行時保持活躍狀態​​的時間。

我已經通過run()和停止()每個線程的所有代碼,它似乎退出優雅,我只關閉藍牙套接字,似乎從研究沒有必要關閉藍牙輸入和輸出,但我也嘗試過這種方法來結束。

任何人都可以提供建議,爲什麼這兩個藍牙讀/寫循環將只停留突然並斷開?看似影響亞行日誌,以及它只是說,試圖連接...

或者何時發生這種情況如何更好地調試任何建議?

甚至有人會在這種情況下做什麼。

希望有人能幫助,我對Android平板業主社區一個偉大的電話遠程應用程序,它取決於我一直停留在2天這最後的問題。

+0

你真的應該顯示你的代碼。藍牙和Android可能相當令人驚訝。我經歷了一些在一段時間後無法連接的設備。原因主要是這些確切的設備已知的錯誤。開機後(不僅關閉/重新激活藍牙,甚至重新啓動),我可以再次使用藍牙。看到這個問題https://code.google.com/p/android/issues/detail?id=41415另外請注意,世界上有這種令人討厭的「使用反射通過RFCOMM連接」的建議。不要這樣做。它繞過SDP-Service-Lookup並始終使用固定通道。 – hna

回答

0

我遇到了斷開問題,並通過發送ping請求和ping確認來實現keepalive。 這對我來說很好......