一尖啡、藍(lán)牙基礎(chǔ)知識(shí)
(一)常見簡(jiǎn)稱
? ?1.MFI? make for ipad ,iphone, itouch 專們?yōu)樘O果設(shè)備制作的設(shè)備,開發(fā)使用ExternalAccessory 框架(認(rèn)證流程貌似挺復(fù)雜的,而且對(duì)公司的資質(zhì)要求較高),詳見:關(guān)于MFi認(rèn)證你所必須要知道的事情
? 2.BLE buletouch low energy雕擂,藍(lán)牙4.0設(shè)備因?yàn)榈秃碾姡砸步凶鯞LE,開發(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è)的場(chǎng)景 ? ??
? ? 2. CBPeripheralManager 外設(shè)模式:使用手機(jī)作為外設(shè)連接其他中心設(shè)備操作的場(chǎng)景
PS:因?yàn)樘O果設(shè)備的安全性和封閉性,蘋果設(shè)備不能通過與其他設(shè)備藍(lán)牙鏈接進(jìn)行文件傳輸?shù)裙δ?所以在iOS與藍(lán)牙開發(fā)的編程中是CBCentralMannager 中心模式編程居多.
(三)CBPeripheral 接剩、CBService、CBCharacteristic
? ? 一個(gè)CBPeripheral可以在設(shè)備列表搜索到一個(gè)或多個(gè)CBService,一個(gè)CBService對(duì)應(yīng)一個(gè)或多個(gè)CBCharacteristic,每一個(gè)CBCharacteristic對(duì)應(yīng)著藍(lán)牙設(shè)備的不同屬性,通過讀的CBCharacteristic可以獲取到藍(lán)牙設(shè)備發(fā)送出來的信息,通過寫的CBCharacteristic可以由客戶端向藍(lán)牙設(shè)備發(fā)送指令.
(四)關(guān)于藍(lán)牙系統(tǒng)開發(fā)庫的初步認(rèn)識(shí)
當(dāng)我們使用CoreBluetooth系統(tǒng)框架進(jìn)行藍(lán)牙開發(fā)的時(shí)候萨咳,有時(shí)候某種功能需要和指定的藍(lán)牙設(shè)備進(jìn)行操作懊缺,這就需要我們拿到藍(lán)牙設(shè)備的唯一標(biāo)識(shí),來確定是哪一臺(tái)設(shè)備培他,先看下一當(dāng)我們掃描到的藍(lán)牙設(shè)備時(shí)鹃两,所能拿到的屬性:
在開發(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
? ? ? 2.引入頭文件,遵循代理,創(chuàng)建藍(lán)牙開發(fā)對(duì)象
#import ?<CoreBluetooth/CoreBltooth.h> ? ? ? ?//藍(lán)牙開發(fā)引用的系統(tǒng)庫
<CBCentralManagerDelegate,CBPeripheralDelegate> ?//藍(lán)牙中心模式開發(fā)遵循的代理
@property (nonatomic,retain) CBCentralManager *manager; ?//藍(lán)牙操作對(duì)象
@property (nonatomic,retain) CBPeripheral *peripheral; ? ? ?//獲取藍(lán)牙設(shè)備信息的對(duì)象
@property (nonatomic,retain) CBCharacteristic *characteristic; ?//藍(lán)牙設(shè)備讀寫服務(wù)操作對(duì)象
三.小結(jié)
? ? ? ?當(dāng)下各種智能硬件的興起,客戶端鏈接外設(shè)需求開始多起來,由于公司智能醫(yī)療設(shè)備的接入,使作者對(duì)于iOS藍(lán)牙接入頭疼了一個(gè)月,這一個(gè)月也是遇到好多巨坑,瑾以此篇獻(xiàn)給那些奮斗在藍(lán)牙第一線和需要了解藍(lán)牙開發(fā)的小伙伴們,希望各位小伙伴能對(duì)我文章予以斧正,通過留言@我,或者直接發(fā)送郵件到924476038@qq.com[因?yàn)榻佑|簡(jiǎn)書時(shí)間不長(zhǎng),對(duì)于代碼塊這個(gè)技能還沒get到],望各位理解
PS:如果這篇無法使大家能完全理解藍(lán)牙編程,不能很好的去應(yīng)用,大伙可以看看這篇,這篇主講的是藍(lán)牙在項(xiàng)目實(shí)戰(zhàn)中使用,希望可以對(duì)你有所幫助 ??藍(lán)牙實(shí)戰(zhàn)
PS:好幾位同學(xué)都簡(jiǎn)信或者QQ聯(lián)系我說能否提供一份Demo,這肯定是可以的,這是對(duì)我的文章最大的肯定.
文章demo地址:github.com/iOSzhangkai/BLE4.0_iOS