# SmartRingGateway **Repository Path**: futureeye/smart-ring-gateway ## Basic Information - **Project Name**: SmartRingGateway - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-19 - **Last Updated**: 2025-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智慧戒指网关应用 ## 项目简介 智慧戒指网关应用是一个用于管理和收集智慧戒指设备数据的Android应用程序。该应用作为网关,负责连接智慧戒指设备,收集健康数据,并将数据存储到本地数据库中。 ## 功能特性 ### 核心功能 - 🔗 **设备连接管理** - 蓝牙设备扫描、连接和状态监控 - 📊 **健康数据收集** - 心率、步数、睡眠、血氧等多维度健康数据 - 💾 **本地数据存储** - 使用Room数据库进行数据持久化 - 🌐 **网关服务** - 统一的数据收集和管理服务 ### 数据类型 - **用户信息** (`User`) - 用户基本信息和健康参数 - **设备信息** (`DeviceInfo`) - 智慧戒指设备状态和配置 - **网关信息** (`Gateway`) - 网关设备管理 - **心率数据** (`HeartRateInfo`) - 实时心率监测数据 - **步数数据** (`StepInfo`) - 日常活动和步行数据 - **睡眠数据** (`SleepInfo`, `SleepDetailInfo`) - 睡眠质量和详细分析 - **血氧数据** (`BloodOxygenInfo`) - 血氧饱和度监测 - **HRV数据** (`HRVInfo`) - 心率变异性分析 - **压力数据** (`StressInfo`) - 压力水平监测 - **体温数据** (`TempInfo`) - 体温变化监测 ## 项目结构 ``` app/src/main/java/com/bxkj/smartringgateway/ ├── MainActivity.java # 主活动 - 应用入口 ├── SmartRingGatewayApplication.java # 应用程序类 ├── data/ # 数据层 │ ├── model/ # 数据模型 │ │ ├── User.java # 用户信息模型 │ │ ├── DeviceInfo.java # 设备信息模型 │ │ ├── Gateway.java # 网关信息模型 │ │ ├── HeartRateInfo.java # 心率数据模型 │ │ ├── StepInfo.java # 步数数据模型 │ │ ├── SleepInfo.java # 睡眠数据模型 │ │ ├── SleepDetailInfo.java # 睡眠详情模型 │ │ ├── BloodOxygenInfo.java # 血氧数据模型 │ │ ├── HRVInfo.java # HRV数据模型 │ │ ├── StressInfo.java # 压力数据模型 │ │ └── TempInfo.java # 体温数据模型 │ ├── dao/ # 数据访问对象 │ │ ├── UserDao.java # 用户数据访问 │ │ ├── DeviceInfoDao.java # 设备数据访问 │ │ ├── GatewayDao.java # 网关数据访问 │ │ ├── HeartRateInfoDao.java # 心率数据访问 │ │ ├── StepInfoDao.java # 步数数据访问 │ │ ├── SleepInfoDao.java # 睡眠数据访问 │ │ ├── SleepDetailInfoDao.java # 睡眠详情数据访问 │ │ ├── BloodOxygenInfoDao.java # 血氧数据访问 │ │ ├── HRVInfoDao.java # HRV数据访问 │ │ ├── StressInfoDao.java # 压力数据访问 │ │ └── TempInfoDao.java # 体温数据访问 │ ├── database/ # 数据库配置 │ │ ├── SmartRingDatabase.java # Room数据库主类 │ │ └── DateConverter.java # 日期类型转换器 │ └── repository/ # 数据仓库 │ └── SmartRingRepository.java # 统一数据访问接口 ├── bluetooth/ # 蓝牙管理 ├── mqtt/ # MQTT通信 ├── network/ # 网络通信 ├── service/ # 后台服务 ├── utils/ # 工具类 ├── constant/ # 常量定义 ├── listener/ # 监听器接口 ├── event/ # 事件处理 └── storage/ # 存储管理 ``` ## 技术栈 ### 核心技术 - **Java** - 主要开发语言 - **Android SDK** - Android原生开发框架 - **Material Design** - 现代UI设计规范 ### 数据库 - **Room** - Android官方ORM数据库框架 - **RxJava3** - 响应式编程框架 ### 网络与通信 - **Retrofit** - HTTP客户端库 - **OkHttp** - 网络请求引擎 - **MQTT** - 消息队列遥测传输协议 ### 其他依赖 - **Gson** - JSON序列化/反序列化 - **FastJSON** - 高性能JSON处理 - **Timber** - 日志管理 - **PermissionX** - 权限管理 - **EventBus** - 事件总线 - **WorkManager** - 后台任务管理 ## 开发环境 - **Android Studio** - 推荐最新版本 - **Java 8+** - 编程语言版本 - **Android API 21+** - 最低支持Android 5.0 - **Gradle** - 构建工具 ## 快速开始 ### 1. 环境准备 ```bash # 克隆项目 git clone [项目地址] # 打开Android Studio # 导入项目 ``` ### 2. 依赖安装 项目使用Gradle自动管理依赖,首次打开项目时会自动下载所需依赖。 ### 3. 运行应用 1. 连接Android设备或启动模拟器 2. 确保设备支持蓝牙功能 3. 点击运行按钮启动应用 ### 4. 使用说明 1. 启动应用后,授权必要的权限(蓝牙、位置) 2. 确保蓝牙已开启 3. 点击"开始网关"按钮启动服务 4. 应用将自动扫描并连接智慧戒指设备 ## 数据库设计 ### 主要数据表 - `users` - 用户信息表 - `gateways` - 网关信息表 - `device_info` - 设备信息表 - `heart_rate_info` - 心率数据表 - `step_info` - 步数数据表 - `sleep_info` - 睡眠数据表 - `sleep_detail_info` - 睡眠详情表 - `blood_oxy_info` - 血氧数据表 - `hrv_info` - HRV数据表 - `stress_info` - 压力数据表 - `temp_info` - 体温数据表 ### 数据关系 - 用户与设备:一对多关系 - 设备与健康数据:一对多关系 - 睡眠数据与睡眠详情:一对多关系 ## API接口 ### 数据仓库接口 (`SmartRingRepository`) ```java // 用户操作 Single insertUser(User user) Completable updateUser(User user) Single getUserById(long userId) Flowable> getAllUsers() // 设备操作 Single insertDevice(DeviceInfo deviceInfo) Single getDeviceByMacAddress(String macAddress) Flowable> getAllDevices() // 健康数据操作 Single insertHeartRate(HeartRateInfo heartRateInfo) Flowable> getHeartRatesByDevice(String macAddress) // ... 其他健康数据操作 ``` ## 权限说明 应用需要以下权限: - `BLUETOOTH` / `BLUETOOTH_ADMIN` - 蓝牙基本权限 - `BLUETOOTH_SCAN` / `BLUETOOTH_CONNECT` - Android 12+蓝牙权限 - `ACCESS_FINE_LOCATION` - 蓝牙扫描需要位置权限 - `INTERNET` - 网络通信权限 ## 开发指南 ### 代码规范 - 遵循Java编码规范 - 使用JSDoc风格注释 - 保持代码简洁和可读性 - 遵循SOLID原则 ### 架构模式 - **MVVM** - 数据绑定和界面分离 - **Repository Pattern** - 统一数据访问 - **Singleton Pattern** - 单例模式管理共享资源 ### 最佳实践 - 使用RxJava处理异步操作 - 合理使用生命周期管理 - 实现适当的错误处理 - 优化内存使用和性能 ## 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目使用 [MIT许可证](LICENSE) ## 联系方式 - 项目维护者:SmartRing Gateway Team - 邮箱:[联系邮箱] - 项目地址:[项目GitHub地址] ## 更新日志 ### v1.0.0 (2024-01-01) - 初始版本发布 - 实现基础的设备连接和数据收集功能 - 完成Room数据库集成 - 添加基础的UI界面 --- **注意**: 这是一个持续开发中的项目,功能和API可能会有变化。请关注更新日志获取最新信息。