在iOS開發中,咱們最經常使用的藍牙開發框架應該是Core Bluetooth
,由於它能夠與第三方藍牙設備交互(必需要支持藍牙4.0),藍牙4.0以低功耗著稱,因此通常也叫BLE(Bluetooth Low Energy),目前普遍應用於智能手環,智能嵌入式設備,智能家居等領域。筆者最近須要用到這個知識,因此一塊兒來學習一下吧。在Core Bluetooth
中提供了與藍牙設備進行通訊所需的類與協議,因此在開發以前必定要將他們的關係弄清楚,那麼開發起來纔會事半功倍。app
Apple 官方文檔地址:developer.apple.com/documentati…框架
重要的類與協議
- CBCentral:中心設備,發起鏈接的是CBCentral
- CBCentralManager:中心設備管理者,相似定位中的
CLLocationManager
- CBPeripheral:外圍設備,被鏈接的設備是CBPeripheral
- CBService:外圍設備的服務,每一個外圍設備都會提供不少服務
- CBCharacteristic:外圍設備的特徵,包含在每一個服務裏
- CBDescriptor:用於描述CBCharacteristic的信息或屬性
- CBCentralManagerDelegate:CBCentralManager對象遵照的協議,用於監視外圍設備的發現、鏈接和檢索
- CBPeripheralDelegate:CBPeripheral對象遵照的協議,用於監視外圍設備的服務和屬性的發現、檢索和交互
兩種開發模式
- 中心模式:以下圖左邊所示,以App爲中心,鏈接其餘的外設進行通訊;(常見開發模式)
- 外設模式:以下圖右邊所示,使用手機做爲外設,鏈接其餘中心設備進行通訊;
中心模式的開發步驟
- 建立CBCentralManager實例進行藍牙管理
- 搜索外圍設備
- 鏈接外圍設備
- 得到外圍設備的服務
- 得到服務的特徵
- 從外圍設備讀數據(讀取或訂閱)
- 向外圍設備寫數據
- 斷開鏈接
注意問題
- 不要對
Core Bluetooth
中的任何類進行子類化
- iOS 10之後須要在info.plist文件中加上
NSBluetoothPeripheralUsageDescription