iOS開發之藍芽(一)
在iOS開發中,我們最常用的藍芽開發框架應該是 Core Bluetooth
,因為它可以與第三方藍芽裝置互動(必須要支援藍芽4.0),藍芽4.0以低功耗著稱,所以一般也叫BLE(Bluetooth Low Energy),目前廣泛應用於智慧手環,智慧嵌入式裝置,智慧家居等領域。筆者最近需要用到這個知識,所以一起來學習一下吧。在 Core Bluetooth
中提供了與藍芽裝置進行通訊所需的類與協議,所以在開發之前一定要將他們的關係弄清楚,那麼開發起來才會事半功倍。
Apple 官方文件地址: https://developer.apple.com/documentation/corebluetooth
重要的類與協議
- CBCentral :中心裝置,發起連線的是CBCentral
- CBCentralManager :中心裝置管理者,類似定位中的
CLLocationManager
- CBPeripheral :外圍裝置,被連線的裝置是CBPeripheral
- CBService :外圍裝置的服務,每個外圍裝置都會提供很多服務
- CBCharacteristic :外圍裝置的特徵,包含在每個服務裡
- CBDescriptor :用於描述CBCharacteristic的資訊或屬性
- CBCentralManagerDelegate :CBCentralManager物件遵守的協議,用於監視外圍裝置的發現、連線和檢索
- CBPeripheralDelegate :CBPeripheral物件遵守的協議,用於監視外圍裝置的服務和屬性的發現、檢索和互動

外圍裝置、服務和特徵值的關係
兩種開發模式
- 中心模式:如下圖左邊所示,以App為中心,連線其他的外設進行通訊;( 常見開發模式 )
-
外設模式:如下圖右邊所示,使用手機作為外設,連線其他中心裝置進行通訊;
兩種開發模式
中心模式的開發步驟
- 建立CBCentralManager例項進行藍芽管理
- 搜尋外圍裝置
- 連線外圍裝置
- 獲得外圍裝置的服務
- 獲得服務的特徵
- 從外圍裝置讀資料(讀取或訂閱)
- 給外圍裝置傳送資料
- 斷開連線
注意問題
- 不要對
Core Bluetooth
中的任何類進行子類化 - iOS 10以後需要在info.plist檔案中加上
NSBluetoothPeripheralUsageDescription