Polar BLE SDK 完整指南:如何连接 Polar 心率胸带、手表,10 分钟获取实时心率与ECG数据
【免费下载链接】polar-ble-sdkRepository includes SDK and code examples. More info https://polar.com/en/developers项目地址: https://gitcode.com/gh_mirrors/po/polar-ble-sdk
Polar BLE SDK 是 Polar 官方推出的软件开发工具包,帮助你用 Android 或 iOS 应用连接 Polar H10 心率胸带、Verity Sense 光学心率传感器以及 Vantage V3、Pacer Pro 等手表,实时获取心率、RR 间期和 130Hz 采样率的 ECG 心电数据。本文面向新手,带你 10 分钟完成从安装到读取数据的完整流程。
它能帮你做什么?
Polar BLE SDK 基于 ReactiveX(响应式编程)设计,覆盖从广播数据到精密传感器的全场景:
| 设备 | 可用能力 |
|---|---|
| H10 心率胸带 | 心率 BPM + RR 间期、ECG 心电数据(130Hz)、加速度计、内部离线录制 |
| Verity Sense | 心率、PPG 血容积信号、加速度/陀螺仪/磁力计、SDK 模式、离线录制 |
| 手表系列(Vantage V3、Grit X2 Pro、Ignite 3、Pacer、Pacer Pro) | 心率、心率广播、PP 间期、50Hz 加速度数据 |
| Polar 360 | 心率、皮肤温度、PP 间期、SDK 模式、离线录制 |
💡 关键概念:SDK 区分在线流式传输(Online Streaming,数据实时经蓝牙推送)和离线录制(Offline Recording,数据存入设备存储,之后回读)。5.0 版本还引入了统一的功能开关PolarBleSdkFeature,只启用你需要的能力,避免浪费蓝牙带宽。
项目结构一览
| 目录 | 内容 |
|---|---|
demos/Android-Demos/PolarSDK-ECG-HR-Demo | Android ECG/心率 Demo,含波形绘制 |
examples/example-android | Android 完整示例 App |
examples/example-ios | iOS 完整示例 App(搜索、连接、录制、流式数据) |
sources/Android | Android SDK 源码 |
sources/iOS | iOS SDK 源码 |
documentation | 官方说明文档 |
polar-sdk-android/docs、polar-sdk-ios/docs | 两端 API 参考文档 |
建议先跑通demos/Android-Demos/PolarSDK-ECG-HR-Demo里的 ECG Demo:它演示了连接设备、启动流式数据并把心电波形实时画到界面上的完整链路,核心入口在MainActivity.kt与ECGActivity.kt。
Android 快速安装:JitPack 四步走
- 设置最低版本:
build.gradle中minSdk 24以上。 - 添加 JitPack 仓库:在
repositories中加入maven { url 'https://jitpack.io' }(项目根目录提供了 jitpack.yml 构建配置)。 - 添加依赖:引入
com.github.polarofficial:polar-ble-sdk,以及配套的 RxJava3(io.reactivex.rxjava3:rxjava与rxandroid)。 - 声明蓝牙权限:在
AndroidManifest.xml中加入BLUETOOTH_SCAN(带neverForLocation标志)、BLUETOOTH_CONNECT,旧版本系统还需BLUETOOTH、BLUETOOTH_ADMIN和位置权限;SDK 还要INTERNET权限用于固件更新检查。
iOS 快速安装:一行 CocoaPods
要求 Xcode 12+、Swift 5+,最低支持 iOS 14(也支持 watchOS)。用 CocoaPods 最省事:
pod 'PolarBleSdk', '~> 5.0'同样也可以用 Swift Package Manager(项目根目录有 Package.swift,并声明了 PolarBleSdk.podspec)。装完后别忘了两件事:
- 在 Target 的 Background Modes 中勾选Uses Bluetooth LE accessories;
- 在 Info.plist 中添加
NSBluetoothAlwaysUsageDescription键,否则系统会拒绝蓝牙访问。
10 分钟连接流程:三步拿到数据
两端的接入模式几乎一致,记住「初始化 → 回调 → 连接」三步:
第 1 步:初始化并启用功能。创建默认实现,按位开启需要的功能:Android 用PolarBleApiDefaultImpl.defaultImplementation(applicationContext, setOf(FEATURE_HR, FEATURE_BATTERY_INFO, ...));iOS 用PolarBleApiDefaultImpl.polarImplementation(DispatchQueue.main, features: Features.hr.rawValue)。
第 2 步:注册回调/观察者。Android 调用api.setApiCallback(...),监听deviceConnected、deviceDisconnected、batteryLevelReceived等事件;iOS 则让控制器遵循PolarBleApiObserver、PolarBleApiDeviceHrObserver等协议,在hrValueReceived中直接拿到心率与 RR 数据。
第 3 步:连接设备。三种方式任选其一:
api.connectToDevice(deviceId)—— 指定设备 ID(ID 印在传感器背面);api.autoConnectToDevice(...)—— 自动连接附近信号最强的设备;api.searchForDevice()—— 扫描后手动选择,适合写设备选择界面(iOS 示例 App 的Views/DeviceSearch/就是这么做的)。
退出页面时记得调用api.shutDown()释放蓝牙资源。
读取实时心率与 ECG 数据
连接成功并收到hrFeatureReady回调后,数据会以响应式流持续推送到你的hrValueReceived(Android)或同名观察者方法(iOS),其中PolarHrData包含当前心率 BPM 和 RR 间期数组。
想要 ECG 波形?只需把功能改为FEATURE_POLAR_ONLINE_STREAMING,通过在线流式 API 以 130Hz 启动 ECG 数据流,回调中会持续收到PolarEcgData(µV 单位的心电采样)。想直接抄作业?看demos/Android-Demos/PolarSDK-ECG-HR-Demo下的EcgPlotter.kt与HrAndRrPlotter.kt,它们演示了如何用流式数据驱动实时波形图。
⏱️ 关于时间戳:Polar 设备的采样时间戳以 2000-01-01 为纪元(Epoch),单位是纳秒。如果流里没有时间戳(如心率、PP 间期流),说明该数据类型的采样时刻无法精确定义。细节见 documentation/TimeSystemExplained.md,还可通过setLocalTime把手机时间同步到传感器。
进阶功能:SDK 模式与离线录制
- SDK 模式:让传感器解锁更高采样率与更宽量程(如 Verity Sense 加速度可达 416Hz、16G 量程),适合科研级数据抓取,说明文档见 documentation/SdkModeExplained.md。
- 离线录制:把数据直接存入传感器/手表存储,运动结束再回读,避免蓝牙中断丢数据,详见 documentation/OfflineRecordingExplained.md。H10 还支持在传感器上启动/停止录制并管理已存记录。
- 睡眠分析:SDK 提供
PolarSleepApi,配合PolarSleepData结构可直接拿到睡眠分期、评级等结果(见sources/iOS/ios-communications/Sources/PolarBleSdk/sdk/api)。
官方 API 文档与排错资源
| 资源 | 位置 |
|---|---|
| Android API 参考 | polar-sdk-android/docs |
| iOS API 参考 | polar-sdk-ios/docs |
| 5.0 版本迁移指南 | documentation/MigrationGuide5.0.0.md |
| 已知问题清单 | documentation/KnownIssues.md |
| 第三方代码与许可证 | ThirdPartySoftwareListing.txt |
⚠️ 新手常见坑(来自 documentation/KnownIssues.md):
- Verity Sense 在充电时电池电量上报可能不更新,拔掉充电线即恢复;
- 通过
setLocalTime设置时间后,流内时间戳需要设备断电重启一次才会生效; - H10 从胸带取下后 45 秒会断开蓝牙,长时间回读内部录制要注意这个超时。
总结
Polar BLE SDK 用一套统一的响应式 API 打通了 Android 与 iOS:JitPack/CocoaPods 一条命令安装,「初始化 → 回调 → 连接」三步即可上手,随后自由组合心率、ECG、PPG、加速度流与离线录制能力。建议从demos/里的 ECG Demo 和examples/双端示例 App 读起,再结合documentation/中的专题文档深入——这是最快掌握这套 SDK 的路径。
【免费下载链接】polar-ble-sdkRepository includes SDK and code examples. More info https://polar.com/en/developers项目地址: https://gitcode.com/gh_mirrors/po/polar-ble-sdk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考