目前APP同硬件模塊通信的方式主要有幾種模式: 藍(lán)牙連接模式、WiFi 連接模式(Socket 或 HTTP server)、DLNA 音視頻共享 (iOS端還可使用AirPlay)。最近測試了 A PP與外設(shè) 通 過 藍(lán)牙方式 實現(xiàn) 硬件 連 接 的功能,對相關(guān)的開發(fā)實現(xiàn)和測試方法進行一些整理, 在此分享給大家。
藍(lán)牙基礎(chǔ)知識
1. iOS平臺下藍(lán)牙開發(fā)可以使用 MFI(ExternalAccessory 框架) 或 BLE (CoreBluetooth 框架) 進行,但實際開發(fā)中基本都使用 CoreBluetooth 框架,因為它功能更強大,支持藍(lán)牙4.0標(biāo)準(zhǔn)。
2. 藍(lán)牙4.0 BLE (Bluetooth low energy) : 它的優(yōu)點在于傳輸快,耗電低,但傳輸數(shù)據(jù)有限,雖然這個傳輸字節(jié)大小硬件工程師可調(diào),但也不會太大。
3. CoreBluetooth框架的核心是peripheral和 central, 可以理解成外設(shè)和中心, 發(fā)起連接的是central,被連接的設(shè)備為 peripheral,它們是一組相對概念。 比如,當(dāng)手機去連接控制藍(lán)牙耳機時,你的手機就是central,當(dāng)手機藍(lán)牙被另一個手機連接并為其提供服務(wù)時就是peripheral。
4. Service和Characteristic:藍(lán)牙 設(shè)備 通過GATT協(xié) 議 定 義的數(shù)據(jù)通訊方式。一個 peripheral可以提供多種 服務(wù)Service,一種Service 又可以包含多個不同的 特征Characteristic。特征就是具體鍵值對,提供數(shù)據(jù)的地方。每個特征屬性分為讀、寫、通知等幾種方式。
5. central通過peripheral 的 Characteristic 來讀寫外設(shè)的數(shù)據(jù),和獲取通知。 Peripheral廣播自己的Service和characteristic,Central訂閱某一個具體的characteristic,Peripheral就和Central之間通過characteristic建立了一個雙向的數(shù)據(jù)通道
6. 外設(shè)peripheral、服務(wù)Service、特征characteristic之間的關(guān)系:
7. UUID: 藍(lán)牙上的唯一標(biāo)示符,為了區(qū)分不同服務(wù)和特征,就用UUID來表示。