![](/img/trans.png)
[英]android- ble device status shows connected for some seconds even after turning off the device
[英]Android 6.0 won't connect to BLE device anymore after turning bluetooth off and back on again
我編寫了一個掃描藍牙智能設備的應用程序,您可以從列表中選擇一個,連接到它並交換一些數據。 一切順利,直到Android 6.0。
首先,我修復了新的權限系統,以便應用程序在運行時請求位置權限,以便能夠掃描設備。 有了這個應用程序就像以前一樣工作,但在關閉藍牙並重新打開之后,應用程序將不再連接,但總是返回斷開連接狀態,並在gatt回調中顯示狀態碼133。
然后我嘗試了幾件事:
這一切都沒有解決問題。 我能夠讓它再次工作的唯一方法是從“備份和重置”菜單中選擇“網絡設置重置”。 這兩款開發手機(Moto G3和三星S6)均采用此選項,在Android 6.0之前尚未見過。
我的問題是:是否有其他人遇到此問題,是否有修復或解決方法? 這可能會造成很多麻煩,關閉/開啟藍牙這種情況很常見,並且在飛行模式后也會出現問題。
好吧,過了一會兒我就解決了這個問題。 我正在使用NRF ble設備並且無法連接,但我仍然能夠連接到TI sensorTag設備。
設備的廣告之間存在一些差異,NRF設備未啟用某些標志,並且NRF設備也未設置設備名稱。 更改后,我能夠再次連接。 原來,必須啟用devicename,但可以留空。
似乎在Android 6.0 ble堆棧中,與設備的連接方式發生了變化,如果在藍牙關閉再打開后沒有使用正確的廣告設置,則設備不再可連接。
記住藍牙有4種狀態,確保檢查它何時已經開啟而不是TURNING_ON:
if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_ON) {
...
}
否則你無法連接到gatt服務器......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.