android ble常見問題收集

1.oppo ble難掃描的問題

oppo 手機只掃描一次,所以經(jīng)常掃不到

修改方式:開啟線程1秒執(zhí)行一次

scanLeDevice(false);

scanLeDevice(false);

scanLeDevice(true);

Runnable?runnable=newRunnable()?{

@Override

public?voidrun()?{

//TODO?Auto-generated?method?stub

//要做的事情

scanLeDevice(false);

scanLeDevice(true);

scanHandler.postDelayed(this,1000);

}

};

scanHandler.postDelayed(runnable,1000);//每兩秒執(zhí)行一次runnable.

2.ble循環(huán)寫入失敗

ble向設(shè)備循環(huán)寫入不需要設(shè)備回復(fù)的數(shù)據(jù)時需要設(shè)置以上屬性,否則會寫入失斪碓:

wirteGattCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE);

3.藍牙多次連接問題

通過使用if(gatt==null)來判斷gatt是否被創(chuàng)建過,如果創(chuàng)建過就使用gatt.connect();重新建立連接透且。

* 但是在這種情況下測試的結(jié)果是重新連接需要花費很長的時間舆乔。

* 解決辦法是通過gatt = device.connectGatt(this, false, gattCallback);建立一個新的連接對象,很明顯這樣的速度要比上一種方法快很多

* 然而矿筝,多次創(chuàng)建gatt連接對象的直接結(jié)果是創(chuàng)建過6個以上gatt后就會再也連接不上任何設(shè)備,原因應(yīng)該是android中對BLE限制了同時連接的數(shù)量為6個

* 解決辦法是在每一次重新連接時都執(zhí)行一次gatt.close();關(guān)閉上一個連接棚贾。

* 有人說為什么不在gatt.disconnect();后加一條gatt.close();呢窖维,原因是如果立即執(zhí)行g(shù)att.close();會導致gattCallback無法收到STATE_DISCONNECTED的狀態(tài)。

* 當然妙痹,最好的辦法是在gattCallback收到STATE_DISCONNECTED后再執(zhí)行g(shù)att.close();铸史,這樣邏輯上會更清析一些。

4.ble三星note3鏈接不上問題

1.ble三星note3必須在主線程中掃描 才能掃到

2.三星有很多代碼是要規(guī)范才能正常運行的

5.提高連接成功概率

掃描到設(shè)備后怯伊,開線程停一會再連接琳轿,可以提高連接效率

6.連接間隔時間修改

ble 中requestConnectionPriority這個方法 修改設(shè)備連接參數(shù)(android5.0以上系統(tǒng)才有的api)

requestConnectionPriority(intconnectionPriority)

connectionPriority這個參數(shù)可以設(shè)置三個值:

CONNECTION_PRIORITY_BALANCED:0//默認的值,ble建議的設(shè)備連接參數(shù)

CONNECTION_PRIORITY_HIGH:1//連接快的值,當需要跟設(shè)備進行大的數(shù)據(jù)傳輸時設(shè)置該值崭篡,當傳輸完成后需要設(shè)置為CONNECTION_PRIORITY_BALANCED(如固件升級時可設(shè)置為該值)

CONNECTION_PRIORITY_LOW_POWER:2.//低功耗值

7.安卓4.3版本難連接解決方案:

經(jīng)測試發(fā)現(xiàn)安卓4.3版本每次掃描后再連接挪哄,容易連接,因此在測試界面加入版本的判斷琉闪,當手機為4.3版本時先掃描再連接迹炼。

8.ble與設(shè)備進行大量數(shù)據(jù)交互時(如ota升級)容易斷開問題

app與設(shè)備進行大數(shù)據(jù)交互時,容易斷:

解決方法:修改設(shè)備的藍牙連接間隔在10-20ms

9.連接間隔修改方法:

1.設(shè)備中有做好接收app發(fā)送指令后修改的:根據(jù)設(shè)備商提供的協(xié)議往設(shè)備上發(fā)送連接間隔時間(如ti芯片就有該功能)

2.芯片廠商沒有的:在android5.0以上系統(tǒng)有:

ble 中requestConnectionPriority這個方法 修改設(shè)備連接參數(shù)

requestConnectionPriority(intconnectionPriority)

connectionPriority這個參數(shù)可以設(shè)置三個值:

CONNECTION_PRIORITY_BALANCED:0//默認的值颠毙,ble建議的設(shè)備連接參數(shù)

CONNECTION_PRIORITY_HIGH:1//連接快的值斯入,當需要跟設(shè)備進行大的數(shù)據(jù)傳輸時設(shè)置該值,當傳輸完成后需要設(shè)置為CONNECTION_PRIORITY_BALANCED(如固件升級時可設(shè)置為該值)

CONNECTION_PRIORITY_LOW_POWER:2.//低功耗值

3.有些廠商會在大數(shù)據(jù)交互開始時主動請求申請修改連接間隔

10.掃描時不能做太多的事情:

在BluetoothAdapter.startLeScan()的時候吟秩,在BluetoothAdapter.LeScanCallback.onLeScan()中不能做太多事情咱扣,特別是周圍的BLE設(shè)備多的時候,開發(fā)建議:在onLeScan()回調(diào)中只做盡量少的工作涵防,可以把掃描到的設(shè)備闹伪,扔到另外一個線程中去處理,讓onLeScan()盡快返回

11.ble藍牙連接參數(shù)解析 device.connectGatt(this, false, mGattCallbacks);

device.connectGatt(this, false, mGattCallbacks);

主要是第二個參數(shù):為false??立刻發(fā)起一次連接

為true??自動連接壮池,只要藍牙設(shè)備變得可用

實測發(fā)現(xiàn)偏瓤,用false連接比較好,比較快椰憋, true會等個十幾秒甚至幾分鐘才會連接上厅克。??開發(fā)過程中一般都是用false,掃描到bluetoothdevice之后橙依,直接用false連接即可证舟。

12.掃描到設(shè)備后,開線程停一會再連接窗骑,可以提高連接效率

GATT_NO_RESOURCES = -128 or 128;

GATT_INTERNAL_ERROR = -127 or 129; //搜索服務(wù)找不到報129

GATT_ERROR = -123 or 133;//連接異常報133

GATT_ALREADY_OPEN = -115 or 141

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末女责,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子创译,更是在濱河造成了極大的恐慌抵知,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件软族,死亡現(xiàn)場離奇詭異刷喜,居然都是意外死亡,警方通過查閱死者的電腦和手機立砸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門掖疮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仰禽,你說我怎么就攤上這事氮墨》那” “怎么了吐葵?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵规揪,是天一觀的道長。 經(jīng)常有香客問我温峭,道長猛铅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任凤藏,我火速辦了婚禮奸忽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘揖庄。我一直安慰自己栗菜,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布蹄梢。 她就那樣靜靜地躺著疙筹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪禁炒。 梳的紋絲不亂的頭發(fā)上而咆,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音幕袱,去河邊找鬼暴备。 笑死,一個胖子當著我的面吹牛们豌,可吹牛的內(nèi)容都是我干的涯捻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼望迎,長吁一口氣:“原來是場噩夢啊……” “哼障癌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起擂煞,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤混弥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后对省,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝗拿,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年蒿涎,在試婚紗的時候發(fā)現(xiàn)自己被綠了哀托。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡劳秋,死狀恐怖仓手,靈堂內(nèi)的尸體忽然破棺而出胖齐,到底是詐尸還是另有隱情,我是刑警寧澤嗽冒,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布呀伙,位于F島的核電站,受9級特大地震影響添坊,放射性物質(zhì)發(fā)生泄漏剿另。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一贬蛙、第九天 我趴在偏房一處隱蔽的房頂上張望雨女。 院中可真熱鬧,春花似錦阳准、人聲如沸氛堕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讼稚。三九已至,卻和暖如春浪耘,著一層夾襖步出監(jiān)牢的瞬間乱灵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工七冲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留痛倚,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓澜躺,卻偏偏與公主長得像蝉稳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子掘鄙,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Key Terms And Concepts 關(guān)鍵術(shù)語和概念 Here is a summary of key B...
    Jaesoon閱讀 2,427評論 0 5
  • 自己封裝的BLE庫(5.0以上) 這里不記錄具體代碼規(guī)則,后面會給出參考文章,別人已經(jīng)寫很詳細了,我就單純記錄下踩...
    冰川孤辰j(luò)s閱讀 4,793評論 1 11
  • 前言: 本文主要描述Android BLE的一些基礎(chǔ)知識及相關(guān)操作流程耘戚,不牽扯具體的業(yè)務(wù)實現(xiàn),其中提供了針對廣播包...
    幻影宇寰閱讀 5,320評論 6 19
  • 安卓4.3(API 18)為BLE的核心功能提供平臺支持和API操漠,App可以利用它來發(fā)現(xiàn)設(shè)備收津、查詢服務(wù)和讀寫特性。...
    風雨byt閱讀 14,012評論 3 43
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理浊伙,服務(wù)發(fā)現(xiàn)撞秋,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139