# Runsight **Repository Path**: nealtang/runsight ## Basic Information - **Project Name**: Runsight - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-11 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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. 克隆项目到本地 ### 编译步骤 ```bash # 克隆项目 git clone https://github.com/mouzhi/Runsight.git cd Runsight # 编译调试版本 ./gradlew assembleDebug # 编译发布版本 ./gradlew assembleRelease -x lintVitalAnalyzeRelease ``` ### 安装到设备 ```bash # 安装调试版本 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](https://github.com/mouzhi/Runsight/releases/latest)** - `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文件。 ## 联系方式 - 项目地址: https://github.com/mouzhi/Runsight - 问题反馈: 请在GitHub上提交Issue --- **注意**: 本应用专为佳明手表设计,其他品牌设备的兼容性可能有限。 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.