iOS藍(lán)牙開發(fā)---CoreBluetooth[BLE 4.0] 初級篇[內(nèi)附Demo地址]

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

(一)常見簡稱

? ?1.MFI? make for ipad ,iphone, itouch 專們?yōu)樘O果設(shè)備制作的設(shè)備,開發(fā)使用ExternalAccessory 框架(認(rèn)證流程貌似挺復(fù)雜的,而且對公司的資質(zhì)要求較高),詳見:關(guān)于MFi認(rèn)證你所必須要知道的事情

? 2.BLE buletouch low energy,藍(lán)牙4.0設(shè)備因?yàn)榈秃碾?,所以也叫做BLE,開發(fā)使用CoreBluetooth 框架(因?yàn)樘O果系統(tǒng)的更新與設(shè)備,當(dāng)下蘋果設(shè)備藍(lán)牙都是支持藍(lán)牙4.0[BLE(Bluetoothlow energy)],關(guān)于普通藍(lán)牙ExternalAccessory這里就不做介紹)

(二)兩種模式

? ? 1.CBCentralMannager 中心模式 :以手機(jī)(app)作為中心,連接其他外設(shè)的場景 ? ??

? ? 2. CBPeripheralManager 外設(shè)模式:使用手機(jī)作為外設(shè)連接其他中心設(shè)備操作的場景

PS:因?yàn)樘O果設(shè)備的安全性和封閉性,蘋果設(shè)備不能通過與其他設(shè)備藍(lán)牙鏈接進(jìn)行文件傳輸?shù)裙δ?所以在iOS與藍(lán)牙開發(fā)的編程中是CBCentralMannager 中心模式編程居多.


iOS藍(lán)牙開發(fā)系統(tǒng)庫

(三)CBPeripheral 、CBService、CBCharacteristic

? ? 一個(gè)CBPeripheral可以在設(shè)備列表搜索到一個(gè)或多個(gè)CBService,一個(gè)CBService對應(yīng)一個(gè)或多個(gè)CBCharacteristic,每一個(gè)CBCharacteristic對應(yīng)著藍(lán)牙設(shè)備的不同屬性,通過讀的CBCharacteristic可以獲取到藍(lán)牙設(shè)備發(fā)送出來的信息,通過寫的CBCharacteristic可以由客戶端向藍(lán)牙設(shè)備發(fā)送指令.

(四)關(guān)于藍(lán)牙系統(tǒng)開發(fā)庫的初步認(rèn)識

當(dāng)我們使用CoreBluetooth系統(tǒng)框架進(jìn)行藍(lán)牙開發(fā)的時(shí)候,有時(shí)候某種功能需要和指定的藍(lán)牙設(shè)備進(jìn)行操作,這就需要我們拿到藍(lán)牙設(shè)備的唯一標(biāo)識,來確定是哪一臺設(shè)備,先看下一當(dāng)我們掃描到的藍(lán)牙設(shè)備時(shí),所能拿到的屬性:

獲取藍(lán)牙外設(shè)信息的類



藍(lán)牙外設(shè)各種狀態(tài)


在開發(fā)藍(lán)牙編程中,藍(lán)牙外設(shè)的設(shè)備名稱,設(shè)備UUID,設(shè)備讀寫屬性的UUIDD可以通過與硬件廠商溝通獲取到或者通過藍(lán)牙助手進(jìn)行獲取,iOS藍(lán)牙4.0的開發(fā)基于和搜索到UUID進(jìn)行匹配,然后建立通信通道,因此關(guān)于設(shè)備的UUID至關(guān)重要.

二.藍(lán)牙編程開發(fā)

? ? ?(一) 準(zhǔn)備工程

? ? ? ? ?1,設(shè)置需要進(jìn)行鏈接的設(shè)備名稱,設(shè)備UUID,服務(wù)UUID

藍(lán)牙設(shè)備基礎(chǔ)信息

? ? ? 2.引入頭文件,遵循代理,創(chuàng)建藍(lán)牙開發(fā)對象

#import ?<CoreBluetooth/CoreBltooth.h> ? ? ? ?//藍(lán)牙開發(fā)引用的系統(tǒng)庫

<CBCentralManagerDelegate,CBPeripheralDelegate> ?//藍(lán)牙中心模式開發(fā)遵循的代理

@property (nonatomic,retain) CBCentralManager *manager; ?//藍(lán)牙操作對象

@property (nonatomic,retain) CBPeripheral *peripheral; ? ? ?//獲取藍(lán)牙設(shè)備信息的對象

@property (nonatomic,retain) CBCharacteristic *characteristic; ?//藍(lán)牙設(shè)備讀寫服務(wù)操作對象


三.小結(jié)

? ? ? ?當(dāng)下各種智能硬件的興起,客戶端鏈接外設(shè)需求開始多起來,由于公司智能醫(yī)療設(shè)備的接入,使作者對于iOS藍(lán)牙接入頭疼了一個(gè)月,這一個(gè)月也是遇到好多巨坑,瑾以此篇獻(xiàn)給那些奮斗在藍(lán)牙第一線和需要了解藍(lán)牙開發(fā)的小伙伴們,希望各位小伙伴能對我文章予以斧正,通過留言@我,或者直接發(fā)送郵件到924476038@qq.com[因?yàn)榻佑|簡書時(shí)間不長,對于代碼塊這個(gè)技能還沒get到],望各位理解

PS:如果這篇無法使大家能完全理解藍(lán)牙編程,不能很好的去應(yīng)用,大伙可以看看這篇,這篇主講的是藍(lán)牙在項(xiàng)目實(shí)戰(zhàn)中使用,希望可以對你有所幫助 ??藍(lán)牙實(shí)戰(zhàn)

PS:好幾位同學(xué)都簡信或者QQ聯(lián)系我說能否提供一份Demo,這肯定是可以的,這是對我的文章最大的肯定.

文章demo地址:github.com/iOSzhangkai/BLE4.0_iOS

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

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

  • 這里我們具體說明一下中心模式的應(yīng)用場景。主設(shè)備(手機(jī)去掃描連接外設(shè),發(fā)現(xiàn)外設(shè)服務(wù)和屬性,操作服務(wù)和屬性的應(yīng)用。一般...
    丶逝水流年閱讀 2,396評論 3 4
  • 首先進(jìn)一則廣告: 藍(lán)牙技術(shù)聯(lián)盟(Bluetooth SIG)2010年7月7日宣布,正式采納藍(lán)牙4.0核心規(guī)范(B...
    L澤閱讀 1,524評論 3 4
  • 點(diǎn)滴的批評雖少,怎奈時(shí)間的久遠(yuǎn)。 輕聲的斥責(zé)雖小,何況年幼的心靈。 迭加的溺愛不明,不知累計(jì)的危險(xiǎn)。 錯(cuò)誤的說教偶...
    智慧小屋閱讀 224評論 0 0
  • 今天依舊沒控制好情緒
    小黃Shirley閱讀 218評論 0 0
  • 創(chuàng)建隊(duì)列 創(chuàng)建串行隊(duì)列 創(chuàng)建并行隊(duì)列 獲取全局隊(duì)列 系統(tǒng)提供dispatch方法 創(chuàng)建異步任務(wù),開啟新線程,不阻塞...
    牧碼人_閱讀 425評論 0 4

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