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ì)的丹麥國王哈拉爾德(Harald Gormsson)的外號(hào)傲诵。出身海盜家庭的哈拉爾德統(tǒng)一了北歐四分五裂的國家,成為維京王國的國王箱硕。由于他喜歡吃藍(lán)莓拴竹,牙齒常常被染成藍(lán)色,而獲得“藍(lán) 牙”的綽號(hào)剧罩,當(dāng)時(shí)藍(lán)莓因?yàn)轭伾之惖木壒时徽J(rèn)為是不適合食用的東西栓拜,因此這位愛嘗新的國王也成為創(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è)的注冊,不過在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è)備分單模和雙模兩種,雙模簡稱BR跳座,商標(biāo)為Bluetooth Smart Ready端铛,單模簡稱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è)廣播來判斷我們設(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.reibang.com/p/2268cfedc051)

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

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

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

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绍绘,隨后出現(xiàn)的幾起案子奶镶,更是在濱河造成了極大的恐慌,老刑警劉巖陪拘,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件实辑,死亡現(xiàn)場離奇詭異,居然都是意外死亡藻丢,警方通過查閱死者的電腦和手機(jī)剪撬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悠反,“玉大人残黑,你說我怎么就攤上這事馍佑。” “怎么了梨水?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵拭荤,是天一觀的道長。 經(jīng)常有香客問我疫诽,道長舅世,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任奇徒,我火速辦了婚禮雏亚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摩钙。我一直安慰自己罢低,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布胖笛。 她就那樣靜靜地躺著网持,像睡著了一般。 火紅的嫁衣襯著肌膚如雪长踊。 梳的紋絲不亂的頭發(fā)上功舀,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音身弊,去河邊找鬼辟汰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛佑刷,可吹牛的內(nèi)容都是我干的莉擒。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼瘫絮,長吁一口氣:“原來是場噩夢啊……” “哼涨冀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起麦萤,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤鹿鳖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后壮莹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翅帜,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年命满,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涝滴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖歼疮,靈堂內(nèi)的尸體忽然破棺而出杂抽,到底是詐尸還是另有隱情,我是刑警寧澤韩脏,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布缩麸,位于F島的核電站,受9級(jí)特大地震影響赡矢,放射性物質(zhì)發(fā)生泄漏杭朱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一吹散、第九天 我趴在偏房一處隱蔽的房頂上張望弧械。 院中可真熱鬧,春花似錦送浊、人聲如沸梦谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至闭树,卻和暖如春耸棒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背报辱。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工与殃, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碍现。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓幅疼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親昼接。 傳聞我的和親對(duì)象是個(gè)殘疾皇子爽篷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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

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