iOS藍(lán)牙開發(fā)(一)藍(lán)牙相關(guān)基礎(chǔ)知識

推薦閱讀:iOS開發(fā)——BAT面試題合集(持續(xù)更新中)

藍(lán)牙常見名稱和縮寫

  • MFI ======= make for ipad ,iphone, itouch 專們?yōu)樘O果設(shè)備制作的設(shè)備

  • BLE ==== buletouch low energy桑逝,藍(lán)牙4.0設(shè)備因為低耗電,所以也叫做BLE

  • peripheral,central == 外設(shè)和中心,發(fā)起連接的時central亮靴,被連接的設(shè)備為perilheral

  • service and characteristic === 服務(wù)和特征 每個設(shè)備會提供服務(wù)和特征字币,類似于服務(wù)端的api掂骏,但是機(jī)構(gòu)不同。每個外設(shè)會有很多服務(wù),每個服務(wù)中包含很多字段肥败,這些字段的權(quán)限一般分為 讀read座硕,寫write弛作,通知notiy幾種,就是我們連接設(shè)備后具體需要操作的內(nèi)容华匾。

  • Description 每個characteristic可以對應(yīng)一個或多個Description用戶描述characteristic的信息或?qū)傩?/p>

  • MFI === 開發(fā)使用ExternalAccessory 框架

  • 4.0 BLE === 開發(fā)使用CoreBluetooth 框架

藍(lán)牙基礎(chǔ)知識

CoreBluetooth框架的核心其實(shí)是兩個東西映琳,peripheral和central, 可以理解成外設(shè)和中心。對應(yīng)他們分別有一組相關(guān)的API和類

image.png
  • 這兩組api分別對應(yīng)不同的業(yè)務(wù)場景蜘拉,左側(cè)叫做中心模式萨西,就是以你的app作為中心,連接其他的外設(shè)的場景旭旭,而右側(cè)稱為外設(shè)模式谎脯,使用手機(jī)作為外設(shè)別其他中心設(shè)備操作的場景。

  • 服務(wù)和特征持寄,特征的屬性(service and characteristic):
    每個設(shè)備都會有一些服務(wù)源梭,每個服務(wù)里面都會有一些特征,特征就是具體鍵值對稍味,提供數(shù)據(jù)的地方废麻。每個特征屬性分為這么幾種:讀,寫仲闽,通知這么幾種方式脑溢。

      //objcetive c特征的定義枚舉
      typedef NS_OPTIONS(NSUInteger, CBCharacteristicProperties) {
          CBCharacteristicPropertyBroadcast                                             = 0x01,
          CBCharacteristicPropertyRead                                                  = 0x02,
          CBCharacteristicPropertyWriteWithoutResponse                                  = 0x04,
          CBCharacteristicPropertyWrite                                                 = 0x08,
          CBCharacteristicPropertyNotify                                                    = 0x10,
          CBCharacteristicPropertyIndicate                                              = 0x20,
          CBCharacteristicPropertyAuthenticatedSignedWrites                             = 0x40,
          CBCharacteristicPropertyExtendedProperties                                        = 0x80,
          CBCharacteristicPropertyNotifyEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0)       = 0x100,
          CBCharacteristicPropertyIndicateEncryptionRequired NS_ENUM_AVAILABLE(NA, 6_0) = 0x200
      };
    
    

外設(shè)、服務(wù)、特征間的關(guān)系

image

藍(lán)牙中心模式流程

1\. 建立中心角色
2\. 掃描外設(shè)(discover)
3\. 連接外設(shè)(connect)
4\. 掃描外設(shè)中的服務(wù)和特征(discover)
    - 4.1 獲取外設(shè)的services
    - 4.2 獲取外設(shè)的Characteristics,獲取Characteristics的值屑彻,獲取Characteristics的Descriptor和Descriptor的值
5\. 與外設(shè)做數(shù)據(jù)交互(explore and interact)
6\. 訂閱Characteristic的通知
7\. 斷開連接(disconnect)

藍(lán)牙外設(shè)模式流程

1\. 啟動一個Peripheral管理對象
2\. 本地Peripheral設(shè)置服務(wù),特性,描述验庙,權(quán)限等等
3\. Peripheral發(fā)送廣告
4\. 設(shè)置處理訂閱、取消訂閱社牲、讀characteristic粪薛、寫characteristic的委托方法

藍(lán)牙設(shè)備狀態(tài)

1\. 待機(jī)狀態(tài)(standby):設(shè)備沒有傳輸和發(fā)送數(shù)據(jù),并且沒有連接到任何設(shè)
2\. 廣播狀態(tài)(Advertiser):周期性廣播狀態(tài)
3\. 掃描狀態(tài)(Scanner):主動尋找正在廣播的設(shè)備
4\. 發(fā)起鏈接狀態(tài)(Initiator):主動向掃描設(shè)備發(fā)起連接搏恤。
5\. 主設(shè)備(Master):作為主設(shè)備連接到其他設(shè)備违寿。
6\. 從設(shè)備(Slave):作為從設(shè)備連接到其他設(shè)備。

藍(lán)牙設(shè)備的五種工作狀態(tài)

  • 準(zhǔn)備(standby)
  • 廣播(advertising)
  • 監(jiān)聽掃描(Scanning
  • 發(fā)起連接(Initiating)
  • 已連接(Connected)

藍(lán)牙和版本的使用限制

  • 藍(lán)牙2.0 === 越獄設(shè)備
  • 藍(lán)牙4.0 === IOS6 以上
  • MFI認(rèn)證設(shè)備(Make For ipod/ipad/iphone) === 無限制

名詞解釋

  • GAAT : Generic Attribute Profile , GATT配置文件是一個通用規(guī)范熟空,用于在BLE鏈路上發(fā)送和接收被稱為“屬性”的數(shù)據(jù)塊藤巢。目前所有的BLE應(yīng)用都基于GATT。 藍(lán)牙SIG規(guī)定了許多低功耗設(shè)備的配置文件息罗。配置文件是設(shè)備如何在特定的應(yīng)用程序中工作的規(guī)格說明掂咒。注意一個設(shè)備可以實(shí)現(xiàn)多個配置文件。例如迈喉,一個設(shè)備可能包括心率監(jiān)測儀和電量檢測绍刮。
  • Characteristic 一個characteristic包括一個單一變量和0-n個用來描述characteristic變量的descriptor,characteristic可以被認(rèn)為是一個類型挨摸,類 似于類孩革。
  • Descriptor Descriptor用來描述characteristic變量的屬性。例如得运,一個descriptor可以規(guī)定一個可讀的描述膝蜈,或者一個characteristic變量可接受的范圍,或者一個characteristic變量特定的測量單位澈圈。 Service service是characteristic的集合彬檀。例如,你可能有一個叫“Heart Rate Monitor(心率監(jiān)測儀)”的service瞬女,它包括了很多characteristics窍帝,如“heart rate measurement(心率測量)”等。你可以在bluetooth.org 找到一個目前支持的基于GATT的配置文件和服務(wù)列表诽偷。

參考閱讀

GATT Profile 簡介

作為一個開發(fā)者坤学,有一個學(xué)習(xí)的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:638302184报慕,不管你是小白還是大牛歡迎入駐 深浮,分享BAT,阿里面試題、面試經(jīng)驗眠冈,討論技術(shù)飞苇, 大家一起交流學(xué)習(xí)成長菌瘫!


image
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市布卡,隨后出現(xiàn)的幾起案子雨让,更是在濱河造成了極大的恐慌,老刑警劉巖忿等,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栖忠,死亡現(xiàn)場離奇詭異,居然都是意外死亡贸街,警方通過查閱死者的電腦和手機(jī)庵寞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來薛匪,“玉大人捐川,你說我怎么就攤上這事〉氨玻” “怎么了属拾?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵将谊,是天一觀的道長冷溶。 經(jīng)常有香客問我,道長尊浓,這世上最難降的妖魔是什么逞频? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮栋齿,結(jié)果婚禮上苗胀,老公的妹妹穿的比我還像新娘。我一直安慰自己瓦堵,他們只是感情好基协,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著菇用,像睡著了一般澜驮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惋鸥,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天杂穷,我揣著相機(jī)與錄音,去河邊找鬼卦绣。 笑死耐量,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的滤港。 我是一名探鬼主播廊蜒,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了山叮?” 一聲冷哼從身側(cè)響起八堡,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎聘芜,沒想到半個月后兄渺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡汰现,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年挂谍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞎饲。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡口叙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嗅战,到底是詐尸還是另有隱情妄田,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布驮捍,位于F島的核電站疟呐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏东且。R本人自食惡果不足惜启具,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望珊泳。 院中可真熱鬧鲁冯,春花似錦、人聲如沸色查。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秧了。三九已至跨扮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間示惊,已是汗流浹背好港。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留米罚,地道東北人钧汹。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像录择,于是被迫代替她去往敵國和親拔莱。 傳聞我的和親對象是個殘疾皇子碗降,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

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