android 藍(lán)牙開發(fā)遇到的問題,連接不上藍(lán)牙。

android 藍(lán)牙開發(fā)遇到的問題,部分手機出現(xiàn)第一次連接藍(lán)牙正常,但第二次開始就連接不上藍(lán)牙。

首先要知道藍(lán)牙有兩種類型,一種是經(jīng)典藍(lán)牙模塊,一般是用于傳輸數(shù)據(jù)量大,比較復(fù)雜數(shù)據(jù)的;另一種則是低功耗藍(lán)牙(BLE),一般用于簡單,快速傳輸數(shù)據(jù)。多用了手表,耳機,鍵盤等設(shè)備。

開發(fā)時遇到部分手機連接不上藍(lán)牙,或者說連接上一次后斷開就連不上或連接很慢。

很有可能是經(jīng)典藍(lán)牙模塊,要配對,你可以用手機自帶(進設(shè)置去邊)的藍(lán)牙去連接,會彈出配對提示框。

解決辦法:

1、在調(diào)用連接方法connectGatt時,應(yīng)確保設(shè)備未在進行搜索狀態(tài)。 如果正在進行搜索操作,則會大幅降低連接嘗試的速度,并增加連接失敗的可能性。所以在調(diào)用連接時先調(diào)用暫停搜索stopLeScan。

即調(diào)用順序為

?mBluetoothAdapter.stopLeScan(leCallBack)? ? //停止搜索

device.connectGatt? ? //連接

如果先調(diào)用connectGatt,后調(diào)用stopLeScan。則會出現(xiàn)第一次能連上,第二次開始就連接不上或連接慢。

2,然后可以在部分地方做延遲處理。在掃描時startLeScan,在連接時connect,等地方做延遲,這樣做的原因可能由于部分手機釋放資源比較慢。

3,斷開連接后需要調(diào)用mBluetoothGatt的close()方法。并把mBluetoothGatt = null設(shè)置為空。

4,盡量在正在連接藍(lán)牙的時侯不要做其他操作??梢约觽€蒙板呀什么的。

參考文章:Android ble藍(lán)牙開發(fā)介紹以及遇到的坑

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容