DemoApplication — 智能手表與 App 藍(lán)牙低功耗(BLE)實(shí)戰(zhàn)指南
文檔主題
智能手表與手機(jī) App 之間的通信常采用藍(lán)牙低功耗(BLE)。相比經(jīng)典藍(lán)牙,BLE 更省電、適合周期性小數(shù)據(jù)同步(心率、步數(shù)、通知、固件升級進(jìn)度等),是穿戴設(shè)備的主流方案。大文件(如 MP3 音頻)若必須走 BLE,需按分包與斷點(diǎn)續(xù)傳設(shè)計(jì),見下文第四章第 6 節(jié)。
本倉庫當(dāng)前為 Jetpack Compose 示例工程(minSdk 24 / compileSdk 34),可作為在此基礎(chǔ)上接入 BLE 的起點(diǎn)。
一、BLE 在手表場景中的常見用法
| 能力 | 說明 |
|---|---|
| GATT 客戶端 | 手機(jī) App 通常作為 Central(中心設(shè)備),手表作為 Peripheral(外設(shè)),App 連接后讀寫特征值(Characteristic)。 |
| 通知 / 指示 | 手表主動上報(bào)數(shù)據(jù):使用 Notify 或 Indicate(Indicate 帶應(yīng)用層確認(rèn))。 |
| 寫入指令 | App 向手表下發(fā)控制或配置:對可寫特征執(zhí)行 Write / Write Without Response。 |
| MTU 與分包 | 數(shù)據(jù)量大時需協(xié)商 MTU,或在上層做分包與粘包協(xié)議。 |
| 配對與綁定 | 涉及敏感數(shù)據(jù)或防重放時,可能依賴系統(tǒng)配對;純明文廣播+連接則未必每次配對。 |
常見協(xié)議形態(tài):廠商自定義 GATT Service/Characteristic UUID,或基于 標(biāo)準(zhǔn)服務(wù)(如 Heart Rate、Battery 等)再擴(kuò)展私有特征。
二、開發(fā)環(huán)境與本項(xiàng)目運(yùn)行
- Android Studio:建議 Hedgehog 及以上,自帶 JDK 與 Android SDK。
- 設(shè)備:真機(jī)(推薦)用于 BLE;模擬器對藍(lán)牙支持有限。
-
運(yùn)行:用 Android Studio 打開工程根目錄,同步 Gradle 后選擇設(shè)備,運(yùn)行
app模塊。
當(dāng)前入口:MainActivity 使用 Compose;已實(shí)現(xiàn) BLE Demo(權(quán)限門閘、掃描列表、連接、服務(wù)枚舉、requestMtu、嘗試讀標(biāo)準(zhǔn)電量、WatchProtocol 本地分包演示),見 ble 與 ui/BleDemoScreen 包。