Heart Rate Monitor
- BLE optimization: call Kable's AndroidPeripheral.requestConnectionPriority once connected to request high connection priority (minimum connection interval), lowering heart rate notification latency
Features:
- Bluetooth LE heart rate monitoring: scan and connect to any BLE heart rate device
- Real-time heart rate display with animated heart icon
- Floating window overlay for always-on heart rate display
- Status bar heart rate indicator with auto color adaptation
- Heart rate history with chart analysis (powered by Vico)
- Heart rate alerts with posture detection (sitting/standing/exercising)
- HTTP server and WebSocket server for real-time data streaming
- Webhook support for pushing heart rate data to external services
- Favorite devices with auto-connect
- Fully customizable UI: colors, opacity, corner radius, size
- Material 3 design with dynamic color support (Android 12+)
- Fair memory management for Chinese OEM devices (vivo, Xiaomi, OPPO, Honor)
- Privacy-friendly: no tracking, no ads, no analytics
Open source under MIT License.
- Author: XiaochangXu
- License: MIT License
- Issue Tracker
- Source Code
- Changelog
- Build Metadata
- Reproducibility Status
Versions
Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.
Download F-Droid-
arm64-v8aThis version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Download APK 5.3 MiB PGP Signature | Build Log
-
arm64-v8aThis version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Download APK 5.1 MiB PGP Signature | Build Log
-
arm64-v8aThis version requires Android 7.0 or newer.
It is built and signed by the original developer, and guaranteed to correspond to this source tarball.
Download APK 5 MiB PGP Signature | Build Log
- Optimized the responsiveness of the drag indicator when the liquid glass navigation bar is enabled
- Changed the top app bar to auto-hide mode (replaced pinnedScrollBehavior() with enterAlwaysScrollBehavior())
- Added show/hide transition animations for setting cards
- Stripped native symbols from libsgliteJni.so to reduce app package size
- Redesigned the update check
- Fixed an issue where heart rate was not displayed after a successful connection. Previously, if heart rate subscription failed (e.g., the watch started broadcasting late, or some devices allowed searching and connecting before enabling heart rate broadcasting), the App would show "Connected" but the home screen/floating win



