你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 【投稿】iOS藍牙開發(一)藍牙相關基礎知識

【投稿】iOS藍牙開發(一)藍牙相關基礎知識

編輯:IOS開發基礎

20071214084035267.jpg

作者:劉彥玮

藍牙常見名稱和縮寫

  • 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和類

blob.png

  • 這兩組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
};

外設、服務、特征間的關系

blob.png

藍牙中心模式流程

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) === 無限制


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved