Skip to content
forked from mouzhi/Runsight

连接佳明手表和Rokid Glasses,可以在眼镜上看到心率\配速\距离\时间\步频等数据,无需手机,蓝牙直连

Notifications You must be signed in to change notification settings

hanabix/Runsight

 
 

Repository files navigation

Runsight

一个专为Rokid Glasses和佳明手表设计的Android应用,通过蓝牙标准服务实时获取和显示运动数据。 我只测试了我自己的手表佳明255,根据其他用户的反馈,部分佳明手表连接后可能并不能显示数据,说明佳明不同型号的蓝牙广播格式应该是不同的 我确实没办法购买所有的佳明手表来测试和兼容,好在这是个开源项目,建议大家在安卓手机上下载一个nRconnect软件连接自己的手表运动模式,订阅里面的的服务并进行抓包 将抓包的LOG分析一下即可兼容自己的手表

应用截图

应用主界面 数据显示界面

左图:应用主界面,显示设备连接状态;右图:数据显示界面,实时显示运动数据

项目简介

Runsight是一个轻量级的Android应用,专门用于连接佳明(Garmin)智能手表,通过蓝牙低功耗(BLE)技术获取实时运动数据。应用采用简洁的界面设计,专注于核心功能的实现。

主要功能

  • 蓝牙设备扫描: 自动扫描并识别佳明手表设备
  • 实时数据获取: 通过RSC(Running Speed and Cadence)和HRM(Heart Rate Monitor)服务获取运动数据
  • 数据实时显示: 显示心率、配速、距离、步频等运动指标
  • 双页面模式: 支持主页面和数据页面切换
  • 亮度控制: 支持通过按键调节屏幕亮度
  • 权限管理: 自动处理蓝牙和位置权限请求

技术特点

  • 轻量化设计: 移除了复杂的UI框架,使用传统Android View系统
  • 标准蓝牙服务: 基于蓝牙标准服务协议,兼容性更好
  • 实时数据处理: 高效的数据解析和显示机制
  • 简洁架构: MVVM架构模式,代码结构清晰
  • 正式签名: 支持APK签名,可正式发布到应用商店

项目结构

app/
├── src/main/java/com/mouzhi/runsight/
│   ├── SimpleMainActivity.kt          # 主Activity,处理UI和用户交互
│   ├── ui/
│   │   ├── viewmodel/
│   │   │   └── RunSightViewModel.kt   # 数据管理和业务逻辑
│   │   └── theme/                     # UI主题配置
│   ├── data/
│   │   ├── models/                    # 数据模型
│   │   └── repository/                # 数据仓库层
│   ├── bluetooth/
│   │   └── BluetoothManager.kt        # 蓝牙连接和数据获取
│   └── utils/
│       ├── BrightnessManager.kt       # 亮度控制
│       └── DebugLogger.kt             # 调试日志
└── src/main/AndroidManifest.xml       # 应用配置和权限声明

使用说明

安装要求

  • Android 6.0 (API 23) 或更高版本
  • 支持蓝牙低功耗(BLE)的设备
  • 佳明智能手表(支持RSC和HRM服务)

使用步骤

  1. 安装应用: 下载并安装APK文件
  2. 授予权限: 首次启动时授予蓝牙和位置权限
  3. 连接手表: 应用会自动扫描并连接佳明手表
  4. 查看数据: 连接成功后即可查看实时运动数据
  5. 页面切换: 按确认键(DPAD_CENTER)切换主页面和数据页面
  6. 亮度调节: 使用左右方向键调节屏幕亮度

按键操作

  • 确认键:切换页面模式(首页 → 数据页 → 竞赛页 → 首页)
  • 左方向键:降低屏幕亮度
  • 右方向键:增加屏幕亮度

竞赛页交互(v1.3.1)

  • 重置比赛起点:连续做一次“右滑”后在1.5秒内“左滑”,或“左滑”后在1.5秒内“右滑”
    • 效果:清零竞赛页显示的“距离”和“跑步时间”,并显示提示语“已重置比赛起点”(1.5秒)
    • 说明:第二页的原始距离保留,用于后续精确积分计算;竞赛页显示距离=原始距离差值+修正量
  • 修正距离(只影响竞赛页显示)
    • 双左滑(≤800ms):向下取整;如果当前已为整数或5秒内再次修正,则直接-1km(不低于0)
    • 双右滑(≤800ms):向上取整;如果当前已为整数或5秒内再次修正,则直接+1km
  • 预计用时:按“已用时 + 剩余距离 × 实时配速”实时计算;实时配速缺失时回退平均配速

开发环境

  • 开发工具: Android Studio
  • 编程语言: Kotlin
  • 最低SDK: API 23 (Android 6.0)
  • 目标SDK: API 34 (Android 14)
  • 构建工具: Gradle 8.13

编译说明

环境准备

  1. 安装Android Studio
  2. 配置Android SDK
  3. 克隆项目到本地

编译步骤

# 克隆项目
git clone https://github.com/mouzhi/Runsight.git
cd Runsight

# 编译调试版本
./gradlew assembleDebug

# 编译发布版本
./gradlew assembleRelease -x lintVitalAnalyzeRelease

安装到设备

# 安装调试版本
adb install app/build/outputs/apk/debug/app-debug.apk

# 安装发布版本(已签名)
adb install app/build/outputs/apk/release/app-release.apk

下载安装

你也可以直接从GitHub Releases页面下载最新版本的APK文件:

📱 下载最新版本 v1.3.1

  • Runsight-v1.3.1-signed.apk - 正式发布版本(推荐)

蓝牙服务说明

应用使用以下标准蓝牙服务获取数据:

  • RSC服务 (Running Speed and Cadence): 获取跑步速度、配速、距离等数据
  • HRM服务 (Heart Rate Monitor): 获取心率数据

这些都是蓝牙标准服务,具有良好的设备兼容性。

故障排除

常见问题

  1. 无法发现设备

    • 确保手表蓝牙已开启
    • 检查应用权限是否已授予
    • 尝试重启蓝牙功能
  2. 连接失败

    • 确保手表处于可连接状态
    • 检查手表是否已与其他设备配对
    • 尝试重启应用
  3. 数据不更新

    • 确保手表处于运动模式
    • 检查RSC和HRM服务是否可用
    • 查看调试日志获取详细信息

版本历史

v1.3.1 (最新版本)

  • 新增:竞赛页“跑步时间 hh:mm”显示,重置起点后从0计时
  • 新增:组合操作重置起点(左→右或右→左),清零显示距离与跑步时间
  • 新增:双左滑/双右滑距修(仅影响竞赛页显示)
    • 双左滑:向下取整;若已整数或5秒内再次修正,则直接-1km
    • 双右滑:向上取整;若已整数或5秒内再次修正,则直接+1km
    • 与亮度增减并存,不互相影响
  • 优化:竞赛页右侧“配速/步频/心率”整体下移一行,布局更清晰
  • 算法:预计用时 = 已用时 + 剩余距离 × 实时配速;实时配速不可用时回退平均配速
  • 竞赛页距离来源:以第二页原始距离(蓝牙速度积分)为基线,重置后以“原始距离差值 + 人工修正”显示

v1.3.0

  • 新增:第三个竞赛仪表页,安全显示区域适配(480×400)
  • 新增:比赛起点重置提示与组合操作(左→右或右→左)
  • 优化:日期与电量移至不安全上下边区域,避免遮挡核心信息
  • 更新:预计完赛显示为“预计用时”,算法基于剩余距离×实时配速 + 已用时

v1.2.0

  • 新增:应用前台运行时保持屏幕常亮
  • 新增:返回桌面后自动恢复系统5秒息屏策略
  • 优化:在具备系统写权限时进入前台提高系统息屏超时,退出时自动恢复原值

v1.1.1

  • 修复左右按键亮度调节功能失效问题
  • 添加APK签名配置,支持正式发布
  • 更新版本号和构建配置
  • 生成可正式发布的签名APK文件
  • 完善项目文档和截图展示

v1.1.0

  • 重构项目架构,移除冗余代码
  • 优化蓝牙连接稳定性
  • 简化UI界面,提升性能
  • 修复数据显示位置问题

v1.0.0

  • 初始版本发布
  • 基本的蓝牙连接功能
  • 运动数据获取和显示
  • 佳明设备集成

贡献指南

欢迎提交Issue和Pull Request来改进项目。

开发规范

  • 使用Kotlin编程语言
  • 遵循Android开发最佳实践
  • 保持代码简洁和注释完整
  • 提交前进行充分测试

许可证

本项目采用MIT许可证,详见LICENSE文件。

联系方式


注意: 本应用专为佳明手表设计,其他品牌设备的兼容性可能有限。

This repository contains the Runsight project, an Android application for fitness tracking and data analysis.

Features

  • Real-time heart rate monitoring
  • Running speed and cadence tracking
  • Data synchronization with external devices

Setup

  1. Clone the repository.
  2. Open the project in Android Studio.
  3. Build and run the application on a compatible device.

License

This project is licensed under the MIT License.

About

连接佳明手表和Rokid Glasses,可以在眼镜上看到心率\配速\距离\时间\步频等数据,无需手机,蓝牙直连

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Kotlin 100.0%