android ble 实现自动连接,Android:自动重新连接BLE设备
經(jīng)過多次試驗(yàn)和磨難之后,這就是我最好讓Android自動(dòng)連接的唯一用戶操作是首先選擇設(shè)備(如果使用設(shè)置菜單然后首先配對(duì)).
您必須將配對(duì)事件捕獲到BroadcastReceiver中并執(zhí)行BluetoothDevice.connectGatt()將autoconnect設(shè)置為true.然后當(dāng)設(shè)備斷開連接時(shí),調(diào)用gatt.connect().
更新:雖然上述方法通常有效,但有時(shí)可能會(huì)因?yàn)榇幚淼倪B接使用非常保守的掃描速率而非常緩慢.另一個(gè)缺點(diǎn)是,對(duì)于要自動(dòng)重新連接的每個(gè)設(shè)備,您必須保持BluetoothGatt對(duì)象執(zhí)行掛起連接.在嵌入式世界中,這是瘋狂的.相反,人們通過檢查其廣告來連續(xù)掃描并連接到所需設(shè)備.一個(gè)只保存有關(guān)設(shè)備的最小數(shù)據(jù)量(服務(wù),配對(duì)狀態(tài)和密鑰等).捕獲廣告時(shí),您會(huì)看到它是否是您已知的設(shè)備之一,如果是,則連接到該廣告.
我試過Android上的等價(jià)物.一直掃描(低功率)并連接到感興趣的廣告,并維護(hù)代表已知設(shè)備的類.這種方法有一些煩人的細(xì)節(jié)(比如在連接后連接和重啟時(shí)關(guān)閉掃描)但它基本上沒有維護(hù)連接的開銷.但有一個(gè)我不明白的例外.掃描儀從未看到過一個(gè)預(yù)配對(duì)設(shè)備的廣告.但是,如果我調(diào)用此設(shè)備的掛起連接,則重新連接.我根本不明白這一點(diǎn).在我的嵌入式平臺(tái)上,它可以正常工作.
如果其他人嘗試過這種方法進(jìn)行自動(dòng)重新連接,請(qǐng)分享您的經(jīng)驗(yàn)!
我發(fā)現(xiàn)Android沒有看到預(yù)配對(duì)設(shè)備的原因.如果設(shè)備響應(yīng)掃描請(qǐng)求,Android僅報(bào)告掃描結(jié)果.配對(duì)后,此設(shè)備僅發(fā)出廣告并忽略掃描請(qǐng)求,因此Android系統(tǒng)不會(huì)在ScanCallback中傳遞其廣告.因此,為了使用掃描方法工作,我必須對(duì)這些特定設(shè)備使用掛起連接方法.看起來你似乎無法獲勝!
總結(jié)
以上是生活随笔為你收集整理的android ble 实现自动连接,Android:自动重新连接BLE设备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Smarty目录结构和子目录路径问题
- 下一篇: fme坐标转换器_利用FME做坐标转换