作者:劉彥玮
藍牙常見名稱和縮寫
MFI ======= make for ipad ,iphone, itouch 專們為蘋果設備制作的設備
BLE ==== buletouch low energy,藍牙4.0設備因為低耗電,所以也叫做BLE
peripheral,central == 外設和中心,發起連接的時central,被連接的設備為perilheral
service and characteristic === 服務和特征 每個設備會提供服務和特征,類似於服務端的api,但是機構不同。每個外設會有很多服務,每個服務中包含很多字段,這些字段的權限一般分為 讀read,寫write,通知notiy幾種,就是我們連接設備後具體需要操作的內容。
Description 每個characteristic可以對應一個或多個Description用戶描述characteristic的信息或屬性
MFI === 開發使用ExternalAccessory 框架
4.0 BLE === 開發使用CoreBluetooth 框架
藍牙基礎知識
CoreBluetooth框架的核心其實是兩個東西,peripheral和central, 可以理解成外設和中心。對應他們分別有一組相關的API和類
這兩組api分別對應不同的業務場景,左側叫做中心模式,就是以你的app作為中心,連接其他的外設的場景,而右側稱為外設模式,使用手機作為外設別其他中心設備操作的場景。
服務和特征,特征的屬性(service and characteristic):
每個設備都會有一些服務,每個服務裡面都會有一些特征,特征就是具體鍵值對,提供數據的地方。每個特征屬性分為這麼幾種:讀,寫,通知這麼幾種方式。
//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 };
外設、服務、特征間的關系
藍牙中心模式流程
1. 建立中心角色
2. 掃描外設(discover)
3. 連接外設(connect)
4. 掃描外設中的服務和特征(discover)
- 4.1 獲取外設的services
- 4.2 獲取外設的Characteristics,獲取Characteristics的值,獲取Characteristics的Descriptor和Descriptor的值
5. 與外設做數據交互(explore and interact)
6. 訂閱Characteristic的通知
7. 斷開連接(disconnect)
藍牙外設模式流程
1. 啟動一個Peripheral管理對象
2. 本地Peripheral設置服務,特性,描述,權限等等
3. Peripheral發送廣告
4. 設置處理訂閱、取消訂閱、讀characteristic、寫characteristic的委托方法
藍牙設備狀態
1. 待機狀態(standby):設備沒有傳輸和發送數據,並且沒有連接到任何設
2. 廣播狀態(Advertiser):周期性廣播狀態
3. 掃描狀態(Scanner):主動尋找正在廣播的設備
4. 發起鏈接狀態(Initiator):主動向掃描設備發起連接。
5. 主設備(Master):作為主設備連接到其他設備。
6. 從設備(Slave):作為從設備連接到其他設備。
藍牙設備的五種工作狀態
准備(standby)
廣播(advertising)
監聽掃描(Scanning
發起連接(Initiating)
已連接(Connected)
藍牙和版本的使用限制
藍牙2.0 === 越獄設備
藍牙4.0 === iOS 6 以上
MFI認證設備(Make For ipod/ipad/iphone) === 無限制