android Ble開發(fā)的那些事(一)

我也是今年剛畢業(yè)加入了一家創(chuàng)業(yè)公司,正好所做的項(xiàng)目主要就是圍繞ble進(jìn)行的。下面跟大家分享下我對(duì)ble的拙見,如有不正確的地方,歡迎指出交流學(xué)習(xí)。

藍(lán)牙的歷史?

1999年5月20日,索尼愛立信、IBM、英特爾、諾基亞及東芝等業(yè)界龍頭創(chuàng)立藍(lán)牙特別興趣組(SIG,Special Interest Group),制訂藍(lán)牙技術(shù)標(biāo)準(zhǔn)。“藍(lán)牙”(Bluetooth)這名稱來自10世紀(jì)的丹麥國(guó)王哈拉爾德(Harald Gormsson)的外號(hào)。出身海盜家庭的哈拉爾德統(tǒng)一了北歐四分五裂的國(guó)家,成為維京王國(guó)的國(guó)王。由于他喜歡吃藍(lán)莓,牙齒常常被染成藍(lán)色,而獲得“藍(lán) 牙”的綽號(hào),當(dāng)時(shí)藍(lán)莓因?yàn)轭伾之惖木壒时徽J(rèn)為是不適合食用的東西,因此這位愛嘗新的國(guó)王也成為創(chuàng)新與勇于嘗試的象征。1998年,愛立信公司希望無線通信技術(shù)能統(tǒng)一標(biāo)準(zhǔn)而取名“藍(lán)芽”。藍(lán)牙,或稱為藍(lán)芽,是一種無線個(gè)人局域網(wǎng)(Wireless PAN),最初由愛立信創(chuàng)制,后來由藍(lán)牙技術(shù)聯(lián)盟訂定技術(shù)標(biāo)準(zhǔn)。據(jù)說因?yàn)榇思夹g(shù)尚在萌芽的階段,故將Bluetooth以“藍(lán)芽”的中文譯名在臺(tái)灣進(jìn)行商 業(yè)的注冊(cè),不過在2006年,該組織已將全球中文統(tǒng)一為“藍(lán)牙”。

什么是Ble?

BLE 是Bluetooth Low Energy的縮寫,又叫藍(lán)牙4.0,區(qū)別于藍(lán)牙3.0和之前的技術(shù)。BLE前身是NOKIA開發(fā)的Wibree技術(shù),主要用于實(shí)現(xiàn)移動(dòng)智能終端與周邊配件之間的持續(xù)連接,是功耗極低的短距離無線通信技術(shù),并且有效傳輸距離被提升到了100米以上,同時(shí)只需要一顆紐扣電池就可以工作數(shù)年之久。BLE是在藍(lán)牙技術(shù)的基礎(chǔ)上發(fā)展起來的,既同于藍(lán)牙,又區(qū)別于傳統(tǒng)藍(lán)牙。BLE設(shè)備分單模和雙模兩種,雙模簡(jiǎn)稱BR,商標(biāo)為Bluetooth Smart Ready,單模簡(jiǎn)稱BLE或者LE,商標(biāo)為Bluetooth Smart。Android是在4.3后才支持BLE,這可以解釋不是所有藍(lán)牙手機(jī)都支持BLE,而且支持BLE的藍(lán)牙手機(jī)一般是雙模的。

Ble的工作原理?

大概知道ble是什么東西后,我們就來了解下他的工作原理。想要了解原理,先搞清楚藍(lán)牙通信之間的關(guān)系——主從關(guān)系。

藍(lán)牙技術(shù)規(guī)定每一對(duì)設(shè)備之間進(jìn)行藍(lán)牙通訊時(shí),必須一個(gè)為主角色,另一為從角色,才能進(jìn)行通信,通信時(shí),必須由主端進(jìn)行查找,發(fā)起配對(duì),建鏈成功后,雙方即可收發(fā)數(shù)據(jù)。理論上,一個(gè)藍(lán)牙主端設(shè)備,可同時(shí)與7個(gè)藍(lán)牙從端設(shè)備進(jìn)行通訊。一個(gè)藍(lán)牙設(shè)備以主模式發(fā)起呼叫時(shí),需要知道對(duì)方的藍(lán)牙地址,配對(duì)密碼等信息,配對(duì)完成后,可直接發(fā)起呼叫。這可以解釋為什么有時(shí)無法連接藍(lán)牙,有可能是連接的藍(lán)牙設(shè)備過多。

藍(lán)牙內(nèi)部詳細(xì)的工作原理呢,由于個(gè)人能力有限就不詳細(xì)講述了,本系列文章主要是介紹下ble在android中的開發(fā)。

Ble在android交互中的角色與職責(zé):

Android設(shè)備與BLE設(shè)備交互有兩組角色:就是中心設(shè)備與周邊設(shè)備了。如圖所示:

Android設(shè)備與BLE設(shè)備交互有兩組角色

一般手機(jī)都是做為中央的,那么該怎么用手機(jī)獲取周邊設(shè)備的相關(guān)數(shù)據(jù)呢?

Ble開發(fā)的大概原理流程:

android中ble連接的流程

在android中,對(duì)ble設(shè)備的操作實(shí)際上是對(duì)BluetoothGatt的操作,所以我們首先要想辦法獲取到BluetoothGatt。如圖展示,對(duì)藍(lán)牙設(shè)備的連接過程也就是獲取BluetoothGatt的獲取過程,大概有以下幾步,下面詳細(xì)講解下:

1.添加權(quán)限(你也知道啦,想要連接ble設(shè)備,肯定得獲取手機(jī)相關(guān)的權(quán)限使用權(quán)啦)

2.掃描Ble設(shè)備:

想要掃描設(shè)備,首先我們先要拿到BluetoothManager,通過BluetoothManager的getAdapter()方法再拿到BluetoothAdapter,然后再通過BluetoothAdapter的startSacn( LeScanCallback)的方法開始掃描設(shè)備。值得注意的是,我們還需要實(shí)現(xiàn)LeScanCallback的回調(diào)方法。

在其回調(diào)方法中會(huì)有這么一個(gè)函數(shù),onLeScan(BluetoothDevice, rssi, byte[])。當(dāng)中的bluetoothDevice就是我們掃描的設(shè)備;rssi是int類型,代表設(shè)備的信號(hào)強(qiáng)度,是負(fù)的,數(shù)值越大代表信號(hào)強(qiáng)度越大;byte[]這個(gè)byte數(shù)組就是設(shè)備廣播的相關(guān)數(shù)據(jù)(在我們項(xiàng)目中,我們是依靠這個(gè)廣播來判斷我們?cè)O(shè)備時(shí)候在充電狀態(tài)的,各個(gè)設(shè)備應(yīng)該都有自己的商定)。

3.建立連接:

當(dāng)掃描到我們所需的設(shè)備,就可以開始建立連接了。主要是使用上面所掃描到設(shè)備的BluetoothDevice.connectGatt(context, boolean, BluetoothGattCallback)的方法進(jìn)行連接,這個(gè)函數(shù)將返回BluetoothGatt的實(shí)例,到此,我們就拿到了BluetoothGatt了,就可以進(jìn)行相關(guān)讀寫數(shù)據(jù)操作了。

連接就講完啦~~~下次貼上我的代碼的,第一篇,寫的不好還請(qǐng)見諒,嘿嘿~~后續(xù)講講讀寫藍(lán)牙數(shù)據(jù),還有藍(lán)牙空中升級(jí)(這個(gè)折磨挺久的~)

[android Ble開發(fā)的那些事(一)](http://www.itdecent.cn/p/2268cfedc051)

[android Ble開發(fā)的那些事(二)](http://www.itdecent.cn/p/13e55d2517b5)

[android Ble開發(fā)的那些事(三)--Ble數(shù)據(jù)分包處理](http://www.itdecent.cn/p/31cbfdda362c)

[android Ble開發(fā)的那些事(四)—— OTA升級(jí)](http://www.itdecent.cn/p/4017e7389804)

原創(chuàng)作品,如需轉(zhuǎn)載,請(qǐng)與作者聯(lián)系,否則將追究法律責(zé)任。

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

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評(píng)論 25 708
  • 前言: 本文主要描述Android BLE的一些基礎(chǔ)知識(shí)及相關(guān)操作流程,不牽扯具體的業(yè)務(wù)實(shí)現(xiàn),其中提供了針對(duì)廣播包...
    幻影宇寰閱讀 5,598評(píng)論 6 19
  • Guide to BluetoothSecurity原文 本出版物可免費(fèi)從以下網(wǎng)址獲得:https://doi.o...
    公子小水閱讀 8,796評(píng)論 0 6
  • 初識(shí)低功耗藍(lán)牙 Android 4.3(API Level 18)開始引入Bluetooth Low Energy...
    JBD閱讀 113,625評(píng)論 46 342
  • 『時(shí)節(jié)雨』 我從云層上跳下來 感受著你的氣息 乘著風(fēng)追逐你的身影 想落在你的唇角 肆意親吻你的柔軟 想落在你的鎖骨...
    嘆嘆嘆息閱讀 130評(píng)論 0 0

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