Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 简体中文
项目规范
HeartRateMonitor

心率监控器 - HeartRateMonitor

让心率监测更优雅。

基于 BLE(蓝牙低功耗)技术的 Android 心率监测应用 + Windows 桌面端心率监控器,双平台可配合使用。

License: MIT Platform Kotlin UI Material minSdk targetSdk Platform .NET


📦 项目概览

本仓库包含两个独立平台的应用,代码互不共享,可配合使用:

目录 平台 技术栈
android Android Kotlin + Jetpack Compose
windows Windows .NET 10 + WinUI 3

✨ 功能特性

Android 端

  • 🖥️ 全屏模式:沉浸式显示心率数据,让手机成为健康监护仪
  • 🔵 蓝牙连接:扫描并连接支持心率广播服务的 BLE 设备
  • 设备管理:收藏常用设备,支持自动连接与断开重连
  • ❤️ 心跳动画:根据心率跳动频率动态变化
  • 📊 心率历史与图表:自动记录、历史列表、批量管理、图表分析、横屏查看
  • 🎨 个性化设置:功能开关、悬浮窗样式自定义
  • 📡 数据接口:HTTP 服务器、WebSocket 服务器、Webhook 推送
  • 🖼️ 悬浮窗显示心率:在手机屏幕上显示心率,不受到应用内容的影响
  • 📌 状态栏常驻心率:状态栏显示实时心率
  • 🔔 心率预警:结合姿态检测,心率超限自动通知与震动
  • 🧠 公平运行内存:适配国产厂商内存管理机制
  • 🎨 颜色选择器:自绘 HSV 色轮
  • 流畅转场动画 实时模糊缩放
  • 🧊 液态玻璃效果 实现底部导航栏的液态玻璃效果
  • 🔗 局域网传输 通过 WebSocket 服务器实现 PC 端与手机的通信
  • 🎯 Material 3 动态取色

Windows 端

  • 蓝牙心率监测:扫描并连接蓝牙心率设备,实时显示 bpm
  • 悬浮窗:可拖拽的桌面悬浮爱心,支持缩放、颜色、心跳动画、bpm 单位显示、触摸穿透与全局热键
  • 外观设置:缩放比例、图标大小、爱心颜色、显示项、心跳动画开关,支持一键重置
  • 网络与传输
    • HTTP 服务器:对外提供当前心率 JSON
    • WebSocket 服务器:实时推送心率数据
    • Webhook:心率变化触发自定义 HTTP 回调
    • 局域网传输:mDNS 广播 + 配对,与手机端实时同步(含端口冲突检测)
  • 多语言:简体中文 / English
  • 版本与信息页:展示当前版本及项目仓库链接

🖼️ 截图展示

Android 端


实时心率监测主页

心率历史与图表分析

个性化设置与悬浮窗

版本与详细信息

Windows 端

首页
首页

悬浮窗设置
悬浮窗设置

局域网传输
局域网传输

版本与详细信息
版本与详细信息

局域网传输
局域网传输


🚀 安装与运行

克隆仓库:

git clone https://github.com/XiaochangXu/HeartRateMonitor-composeui.git

Android 端

  1. 打开项目:使用 Android Studio 打开 android 目录
  2. 等待 Gradle 自动同步依赖
  3. 构建并运行:使用真机或模拟器(API ≥ 24)连接,点击工具栏中的 ▶️ 运行按钮

Windows 端

环境要求:Windows 10/11、.NET 10 SDK、Windows App SDK 1.8 工作负载。

cd windows
dotnet build -c Debug

运行:

bin\Debug\net10.0-windows10.0.19041.0\win-x64\HeartRate.exe

dotnet 不在 PATH,请使用完整路径调用 dotnet.exe

也可以直接解压发布包,进入目录双击 HeartRate.exe 即可启动。


🧭 使用指南

Android 端

  1. 首次权限授予:允许蓝牙权限与定位权限
  2. 连接心率设备:先在设备上开启心率广播,再点击扫描按钮,选择设备连接
  3. 查看历史记录:点击工具栏历史图标进入历史列表,单击查看图表
  4. 使用悬浮窗:主页工具栏开关,设置中自定义外观
  5. 状态栏常驻:设置 → 状态栏心率,开启后状态栏显示心率
  6. 心率预警:设置 → 心率预警,配置阈值与姿态校准
  7. 数据接口:设置 → 数据与服务,配置 HTTP/WebSocket/Webhook

Windows 端

  • 解压压缩包后进入目录,双击 HeartRate.exe 即可启动

技术栈

Android 端

  • Kotlin + Jetpack Compose
  • Kable(BLE)、Vico(图表)、Room(数据库)、MaterialKolor(动态取色)
  • NanoHTTPD(HTTP/WebSocket 服务)、PermissionX、AndroidLiquidGlass

Windows 端

  • .NET 10 + WinUI 3(Windows App SDK 1.8)
  • CommunityToolkit.Mvvm(MVVM 源生成器)
  • Direct2D / DirectComposition 渲染悬浮窗
  • 自承载(self-contained)非打包部署

📁 项目结构

├── android/                     # Android 端(Kotlin + Compose)
├── windows/                     # Windows 端(C# + WinUI 3)
├── .github/workflows/           # 发布流水线:release-android.yml / release-windows.yml
├── LICENSE
└── README.md

🙏 致谢

核心依赖(Android 端)


🗺️ Roadmap

✅ 核心功能

  • BLE 心率设备扫描与连接
  • 心率历史记录与图表分析
  • 悬浮窗 / 状态栏常驻心率
  • HTTP / WebSocket / Webhook 数据接口
  • 心率预警 + 姿态检测
  • Material 3 动态取色
  • 自绘 HSV 颜色选择器
  • 通过 WebSocket 服务器实现 PC 端与手机的通信

📄 License

MIT © 2026 XiaochangXu

About

这是一款心率监测应用,支持Android和Windows,基于蓝牙心率广播实时显示心率,支持悬浮窗、状态栏显示、触摸穿透、网络传输

Topics

Resources

Stars

127 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages