Android 藍牙4.0連接幾次後出現連接不了,搜索不到服務的情況

 最近做手機藍牙與BLE設備的智能項目。遇到一個問題,記錄下來。方便以後。

出現的情況是:手機藍牙與藍牙設備連接幾次,交互信息後,無法再次連接與搜索到服務,需重啓手機藍牙或者關閉APP後,再次啓動APP,才能再次連接設備。

上網查找了不少資料。才找資料。非常感謝此博文提供的參考解決方案http://bbs.eeworld.com.cn/thread-438571-1-1.html


/*多次創建gatt連接對象的直接結果是創建過6個以上gatt後就會再也連接不上任何設備,原因應該是Android中對BLE限制了同時連接的數量爲6個

                         * 解決辦法是在每一次重新連接時都執行一次gatt.close();關閉上一個連接。
                         * 有人說爲什麼不在gatt.disconnect();後加一條gatt.close();呢,原因是如果立即執行gatt.close();會導致gattCallback無法收到STATE_DISCONNECTED的狀態。
                         * 當然,最好的辦法是在gattCallback收到STATE_DISCONNECTED後再執行gatt.close();,這樣邏輯上會更清析一些。
                         */


比如我的項目:



if (mBluetoothGatt != null) {
   mBluetoothGatt.close();
   //LogUtil.info("-------------關閉mBluetoothGatt");
}
//連接前先關閉之前 的

 mBluetoothGatt = device.connectGatt(context, false, mGattCallback);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章