android 藍(lán)牙開發(fā) 前言篇

前言

最近工作進(jìn)行了藍(lán)牙方面的開發(fā)刀疙,踩了不少坑囤捻。為了避免用過就忘食听,也是想拓展下藍(lán)牙開發(fā)更深更廣的領(lǐng)域籍救,于是寫博客進(jìn)行記錄习绢。根據(jù)我用到的知識大概要分這么幾個部分講解:藍(lán)牙基礎(chǔ)篇,LE篇,A2dp篇闪萄,再之后其他的涉獵可能要看我后續(xù)能學(xué)習(xí)的多深入了梧却。先一篇一篇寫吧,最后再做整體的章節(jié)梳理败去。(本篇先介紹藍(lán)牙基礎(chǔ)科普知識放航,了解這個有助于系統(tǒng)性的學(xué)習(xí)藍(lán)牙相關(guān)知識,如果是單純想要快速上手android藍(lán)牙開發(fā)圆裕,請看下一篇

藍(lán)牙是一種短距離無線通信技術(shù)广鳍。(原本以為藍(lán)牙不能像4G那樣遠(yuǎn)距離傳輸是因為藍(lán)牙的波長太短不適合遠(yuǎn)距離傳輸,結(jié)果他倆的無線電波頻率都差不多吓妆,藍(lán)牙不適合遠(yuǎn)距離主要是因為輸出功率不夠)

藍(lán)牙版本發(fā)展史

1994年赊时,也就是我出生那年。愛立信為了為旗下產(chǎn)品提供更好的信息傳輸方式而研發(fā)了藍(lán)牙行拢,其命名為“藍(lán)牙”是在1997年蛋叼。
2002年,藍(lán)牙1.1版正式推出剂陡,相當(dāng)于是1.0的穩(wěn)定版狈涮。1.2又加入了抗干擾跳頻功能。
藍(lán)牙1.x的版本傳輸速率只有800kpbs左右鸭栖,藍(lán)牙2.0使用了EDR技術(shù)使得傳輸速度能夠達(dá)到3Mbps歌馍。
藍(lán)牙3.0的速度達(dá)到了24Mbps,支持藍(lán)牙的各種設(shè)備開始爆發(fā)式出現(xiàn)晕鹊,但是功耗問題也暴露了出來松却。
藍(lán)牙4.0將藍(lán)牙的使用功耗大幅度降低,不僅如此還提升了其連接速度和傳輸距離(可達(dá)100m)溅话,4.1晓锻,4.2更是增加了藍(lán)牙傳輸?shù)陌踩浴#˙LE低功耗藍(lán)牙)
藍(lán)牙5.0更快的傳輸速度飞几,更遠(yuǎn)的傳輸距離(300m)砚哆,精準(zhǔn)的定位(誤差在1m內(nèi))。

藍(lán)牙協(xié)議相關(guān)

經(jīng)典藍(lán)牙(又稱傳統(tǒng)藍(lán)牙):主要是針對4.0低功耗藍(lán)牙之前的藍(lán)牙協(xié)議(BR / EDR協(xié)議)的總稱 屑墨。
低功耗藍(lán)牙:牙是針對于4.0增加的BLE協(xié)議(即Bluetooth Low Energy)躁锁。另外android版本4.3以上才支持BLE。
針對于上面兩種模式現(xiàn)在藍(lán)牙設(shè)備分為了單模和雙模兩種卵史,顧名思義战转,單模即是指只支持經(jīng)典藍(lán)牙或者低功耗藍(lán)牙中的一種模式。雙模則是既兼容經(jīng)典藍(lán)牙又兼容低功耗藍(lán)牙以躯。
藍(lán)牙應(yīng)用層協(xié)議:
HSP(HeadsetPro-file)代表耳機(jī)功能槐秧,提供手機(jī)與耳機(jī)之間通信所需的基本功能。
HFP(HandProfile)則代表免提功能,HFP在HSP的基礎(chǔ)上增加了某些擴(kuò)展功能刁标。
A2DP(Advanced Audio Distribution Profile)指的是 藍(lán)牙音頻傳輸模型協(xié)定颠通,是一種音頻的高清晰度傳輸協(xié)議。
AVRCP(Audio/VideoRemote Control Profile)也就是音頻/視頻遙控規(guī)格命雀,用于從控制器(如立體聲耳機(jī))向目標(biāo)設(shè)備(如裝有 Media Player 的電腦)發(fā)送命令(如前跳、暫停和播放)斩箫。
OPP(Object Push Profile)藍(lán)牙通信程序部分需采用用于設(shè)備之間傳輸數(shù)據(jù)對象吏砂。
PBAP(PhonebookAccess Profile)電話號碼簿訪問協(xié)議。

藍(lán)牙BLE相關(guān)

BLE四種工作模式:
1.主設(shè)備模式:藍(lán)牙模塊可以對周圍設(shè)備進(jìn)行搜索并選擇需要連接的從機(jī)進(jìn)行連接乘客,可以發(fā)送和接收數(shù)據(jù)狐血。
2.從設(shè)備模式:藍(lán)牙模塊只能被主機(jī)搜索,不能主動搜索易核。從設(shè)備跟主機(jī)連接以后匈织,也可以和主機(jī)設(shè)備進(jìn)行發(fā)送和接收數(shù)據(jù)。
3.廣播模式:藍(lán)牙模塊可以進(jìn)行一對多的廣播牡直。
4.mesh組網(wǎng)模式:藍(lán)牙模塊可以實現(xiàn)簡單的自組網(wǎng)絡(luò)缀匕,每個模塊只需要設(shè)置相同的通訊密碼就可以加入到同一網(wǎng)絡(luò)當(dāng)中,每一個模塊都可以發(fā)起數(shù)據(jù)碰逸,每個模塊可以收到數(shù)據(jù)并且進(jìn)行回復(fù)乡小。并且不需要網(wǎng)關(guān),即使某一個設(shè)備出現(xiàn)故障也會跳過并選擇最近的設(shè)備進(jìn)行傳輸饵史。

藍(lán)牙UUID

UUID 是通用唯一識別碼(Universally Unique Identifier)满钟。
藍(lán)牙中關(guān)于UUID的介紹一般會關(guān)聯(lián)到service UUID(服務(wù)),Characteristic UUID(特性)胳喷,還有Property(屬性)這幾個概念湃番。
簡單的理解就是藍(lán)牙提供了不同的service (每個service 都有與眾不同的UUID),而Characteristic是從屬于service的(同樣每個Characteristic都有與眾不同的UUID)吭露,每一個Characteristic又有一個或多個Property(當(dāng)然Property是沒有UUID的概念)吠撮。
可以把service理解成一個家庭,每個家庭都有不同的戶口id讲竿,Characteristic 就像家庭中的人纬向,每個人有自己的身份證號,Property就是指某個家庭成員所擁有的能力(比如說我的能力“Property”有吃飯戴卜,睡覺逾条,寫B(tài)ug等等)。
關(guān)于屬性我再舉幾個詳細(xì)的例子投剥,能更好的理解這些概念了:
Read:讀屬性师脂,具有該屬性的Characteristic UUID 是可讀的。
Write:寫屬性,具有該屬性的Characteristic UUID 是可以接收寫入數(shù)據(jù)的吃警。
Notify:通知屬性糕篇,具有該屬性的Characteristic UUID是可以發(fā)送通知的。

最后講一下有關(guān)UUID的格式問題:
完整的格式(也是唯一的酌心,其他格式只是對應(yīng)這種格式的縮減版拌消,都可以映射成這種格式)是128bit長度的數(shù)據(jù)。除此之外還有32bit長度和16bit長度的兩種精簡版

UUID的編碼規(guī)則(了解就好不需用深入研究安券,128bit轉(zhuǎn)換成16進(jìn)制子串是32位長度墩崩,下面這個位是指16進(jìn)制的第幾位):
1)1~8位采用系統(tǒng)時間,在系統(tǒng)時間上精確到毫秒級保證時間上的惟一性侯勉;
2)9~16位采用底層的IP地址鹦筹,在服務(wù)器集群中的惟一性;
3)17~24位采用當(dāng)前對象的HashCode值址貌,在一個內(nèi)部對象上的惟一性铐拐;
4)25~32位采用調(diào)用方法的一個隨機(jī)數(shù),在一個對象內(nèi)的毫秒級的惟一性练对。
32bit長度和16bit長度UUID擴(kuò)展為128bit的UUID:
若 16 bit UUID為xxxx遍蟋,那么 128 bit UUID 為 0000xxxx-0000-1000-8000-00805F9B34FB
若 32 bit UUID為xxxxxxxx,那么 128 bit UUID 為 xxxxxxxx-0000-1000-8000-00805F9B34FB

還有些技術(shù)詞概念和專業(yè)詞匯等以后遇到了再過來補(bǔ)充螟凭。

android 藍(lán)牙開發(fā) 基礎(chǔ)篇鏈接:
http://www.reibang.com/p/c223425ade4d

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凭疮,一起剝皮案震驚了整個濱河市奇瘦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖竣况,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桦卒,死亡現(xiàn)場離奇詭異蒋困,居然都是意外死亡翻擒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門汪拥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來达传,“玉大人,你說我怎么就攤上這事迫筑∠芨希” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵脯燃,是天一觀的道長搂妻。 經(jīng)常有香客問我,道長辕棚,這世上最難降的妖魔是什么欲主? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任邓厕,我火速辦了婚禮,結(jié)果婚禮上扁瓢,老公的妹妹穿的比我還像新娘详恼。我一直安慰自己,他們只是感情好引几,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布昧互。 她就那樣靜靜地躺著,像睡著了一般伟桅。 火紅的嫁衣襯著肌膚如雪敞掘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天贿讹,我揣著相機(jī)與錄音渐逃,去河邊找鬼够掠。 笑死民褂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疯潭。 我是一名探鬼主播赊堪,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼竖哩!你這毒婦竟也來了哭廉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤相叁,失蹤者是張志新(化名)和其女友劉穎遵绰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體增淹,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椿访,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了虑润。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片成玫。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拳喻,靈堂內(nèi)的尸體忽然破棺而出哭当,到底是詐尸還是另有隱情,我是刑警寧澤冗澈,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布钦勘,位于F島的核電站,受9級特大地震影響亚亲,放射性物質(zhì)發(fā)生泄漏个盆。R本人自食惡果不足惜脖岛,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颊亮。 院中可真熱鬧柴梆,春花似錦、人聲如沸终惑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雹有。三九已至偿渡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間霸奕,已是汗流浹背溜宽。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留质帅,地道東北人适揉。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像煤惩,于是被迫代替她去往敵國和親嫉嘀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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