心率监控器
通过 BLE 设备监测心率,支持实时显示、历史记录和预警功能
新版本 4.8
- 蓝牙底层优化:基于 Kable 的 onServicesDiscovered 回调自动调用 requestMtu 协商更大 MTU(517),减少心率数据分包,提升传输可靠性;协商失败时自动回退默认值,不影响连接
- 蓝牙底层优化:连接成功后调用 Kable 的 AndroidPeripheral.requestConnectionPriority 请求高优先级连接参数(最小连接间隔),降低心率通知延迟,数据更实时
- 蓝牙底层优化:通过 Kable Peripheral 构建器的 phy 配置优先使用 LE 2M PHY(蓝牙 5.0+,2 倍物理层速率),设备不支持时系统自动回退 LE 1M,无副作用
- 蓝牙底层优化:通过 Kable Peripheral 构建器的 disconnectTimeout 配置将断开等待时限从 5 秒放宽至 10 秒,确保断开时清理流程(会话落盘等)完整执行
- 新增「开启搜索过滤」开关(功能设置 → 连接与后台):开启后使用 Kable Scanner 的 Filter.Service 原生过滤,仅扫描广播心率服务 0x180D 的设备,由系统
- 蓝牙底层优化:连接成功后调用 Kable 的 AndroidPeripheral.requestConnectionPriority 请求高优先级连接参数(最小连接间隔),降低心率通知延迟,数据更实时
- 蓝牙底层优化:通过 Kable Peripheral 构建器的 phy 配置优先使用 LE 2M PHY(蓝牙 5.0+,2 倍物理层速率),设备不支持时系统自动回退 LE 1M,无副作用
- 蓝牙底层优化:通过 Kable Peripheral 构建器的 disconnectTimeout 配置将断开等待时限从 5 秒放宽至 10 秒,确保断开时清理流程(会话落盘等)完整执行
- 新增「开启搜索过滤」开关(功能设置 → 连接与后台):开启后使用 Kable Scanner 的 Filter.Service 原生过滤,仅扫描广播心率服务 0x180D 的设备,由系统
一款轻量级的 Android 心率监测应用,基于 Jetpack Compose 和 Material 3 构建。连接 BLE 心率设备,实时追踪你的心率数据。
功能特性:
- 蓝牙 BLE 心率监测:扫描并连接任意 BLE 心率设备
- 实时心率显示,带心跳动画效果
- 悬浮窗叠加层,随时查看心率
- 状态栏常驻心率指示器,自动适配背景色
- 心率历史记录与图表分析(基于 Vico)
- 心率预警,结合姿态检测(静坐/站立/运动)
- HTTP 服务器和 WebSocket 服务器,实时数据推送
- Webhook 支持,将心率数据推送到外部服务
- 设备收藏与自动连接
- 高度自定义 UI:颜色、透明度、圆角、大小
- Material 3 设计,支持动态取色(Android 12+)
- 公平运行内存机制,适配国产厂商(vivo、小米、OPPO、荣耀)
- 隐私友好:无追踪、无广告、无分析
MIT 开源协议。
功能特性:
- 蓝牙 BLE 心率监测:扫描并连接任意 BLE 心率设备
- 实时心率显示,带心跳动画效果
- 悬浮窗叠加层,随时查看心率
- 状态栏常驻心率指示器,自动适配背景色
- 心率历史记录与图表分析(基于 Vico)
- 心率预警,结合姿态检测(静坐/站立/运动)
- HTTP 服务器和 WebSocket 服务器,实时数据推送
- Webhook 支持,将心率数据推送到外部服务
- 设备收藏与自动连接
- 高度自定义 UI:颜色、透明度、圆角、大小
- Material 3 设计,支持动态取色(Android 12+)
- 公平运行内存机制,适配国产厂商(vivo、小米、OPPO、荣耀)
- 隐私友好:无追踪、无广告、无分析
MIT 开源协议。
版本
尽管下面提供了 APK 安装包的下载选项,但你应该注意,以这种方式安装将不会收到更新通知,这是一种不太安全的下载方式。 我们建议你安装使用 F-Droid 客户端。
下载 F-Droid-
arm64-v8a该版本需要 Android 7.0 及以上版本。
此包由原始开发者构建并签名,并保证对应于此源代码 tarball。
-
arm64-v8a该版本需要 Android 7.0 及以上版本。
此包由原始开发者构建并签名,并保证对应于此源代码 tarball。
-
arm64-v8a该版本需要 Android 7.0 及以上版本。
此包由原始开发者构建并签名,并保证对应于此源代码 tarball。
新版本 4.6
- 修复 Compose 闭包过期导致液态玻璃导航栏拖拽指示器页面不切换的问题
- 优化开启液态玻璃导航栏后拖拽指示器的跟手
- 修改顶部应用栏为自动隐藏模式( pinnedScrollBehavior() → enterAlwaysScrollBehavior() )
- 增加设置卡片的显示隐藏过渡动画
- 剥离libsgliteJni.so的原生符号,减小应用体积
- 修改检查更新的弹窗为BottomSheet,可显示mark文档
- 优化开启液态玻璃导航栏后拖拽指示器的跟手
- 修改顶部应用栏为自动隐藏模式( pinnedScrollBehavior() → enterAlwaysScrollBehavior() )
- 增加设置卡片的显示隐藏过渡动画
- 剥离libsgliteJni.so的原生符号,减小应用体积
- 修改检查更新的弹窗为BottomSheet,可显示mark文档
新版本 4.5
- 修复断开蓝牙后快速重连首页心率卡片仍显示上次断开时的旧数据
- 修复连接成功后心率不显示的问题,此前若心率订阅失败(如手表开启广播的时机较晚或者有些设备可以先搜索连接再开启心率广播),App 会一直显示"已连接"但首页/悬浮窗心率停在 "--"只能断开重连。现在订阅失败会自动重试,无需手动重连。
- 修复连接不稳定/被意外打断,此前切换连接设备时,旧设备的自动重连逻辑可能打断新连接,现在用户发起新连接后,旧任务自动放弃重连。
- 修复单个异常导致页面数据全部停更,此前任一数据源出错,首页心率、连接状态、扫描列表会一起停止刷新。,现在各数据通道互相隔离,单个出错不影响其他。
- 修复悬浮窗/状态栏重复订阅
- 修复服务被系统重建后不再叠加重复数据收集。
- 优化多语言支持
- 修复连接成功后心率不显示的问题,此前若心率订阅失败(如手表开启广播的时机较晚或者有些设备可以先搜索连接再开启心率广播),App 会一直显示"已连接"但首页/悬浮窗心率停在 "--"只能断开重连。现在订阅失败会自动重试,无需手动重连。
- 修复连接不稳定/被意外打断,此前切换连接设备时,旧设备的自动重连逻辑可能打断新连接,现在用户发起新连接后,旧任务自动放弃重连。
- 修复单个异常导致页面数据全部停更,此前任一数据源出错,首页心率、连接状态、扫描列表会一起停止刷新。,现在各数据通道互相隔离,单个出错不影响其他。
- 修复悬浮窗/状态栏重复订阅
- 修复服务被系统重建后不再叠加重复数据收集。
- 优化多语言支持



