重构通知显示机制,使用DialogFragment替代Activity,提升性能和用户体验: 1. 删除CommonNotificationActivity及相关资源 2. 新增NotificationDialogFragment实现全屏弹窗 3. 更新NotificationManager适配新机制 4. 添加全屏样式和布局文件 5. 优化系统UI隐藏逻辑
ASR5515 Android 串口通信应用
项目概述
这是一个基于 Android 平台的串口通信应用,主要用于与 ASR5515 设备进行通信。该应用实现了完整的串口通信协议,支持设备管理、数据采集、状态监控等功能。同时,应用还集成了WiFi保活、蓝牙配网等网络功能,以确保设备的稳定连接。
主要功能
-
串口通信
- 基于 Android SerialPort API 的串口通信实现
- 支持自定义波特率和串口配置
- 数据帧封装和解析
-
设备管理
- 设备检测和状态查询
- 设备重启控制
- 固件版本管理
- 蓝牙模块管理
-
数据采集
- 心率、血压、血氧自动测量
- 手动测量模式支持
- 动态测量功能
- 可配置的数据采集频率
-
状态监控
- 设备佩戴检测
- 主机状态同步
- 日志控制功能
-
网络功能
- WiFi保活机制,防止频繁断连
- 蓝牙配网功能
- 网络状态监控
技术架构
graph TD
A[Android App] --> B[串口通信层]
A --> N[网络管理层]
B --> C[协议解析层]
C --> D[设备管理]
C --> E[数据采集]
C --> F[状态监控]
N --> O[WiFi保活]
N --> P[蓝牙配网]
B --> |SerialPortHelper| G[串口读写]
C --> |ASR5515Protocol| H[协议实现]
D --> |ASR5515DeviceManager| I[设备控制]
O --> |WiFiKeepAliveManager| J[WiFi锁管理]
核心模块
-
SerialPortHelper
- 串口通信的核心类
- 实现数据的发送和接收
- 管理通信线程和数据队列
-
ASR5515Protocol
- 实现 ASR5515 设备通信协议
- 定义命令集和数据格式
- 处理数据帧的封装和解析
-
ASR5515DeviceManager
- 设备信息查询
- 设备控制命令
- 固件升级支持
-
WiFiKeepAliveManager
- WiFi锁管理,防止WiFi频繁断连
- 网络状态监控
- 自动管理WiFi资源
-
网络配置模块
- 蓝牙配网功能
- 网络状态测试
- BSSID测试功能
通信协议
- 帧格式:
[命令字(2字节) + 序列号(2字节) + 长度(2字节) + 数据]
- 支持的命令类型:
- 设备检查 (0x0065/0x0066)
- 设备重启 (0x0067/0x0068)
- 状态同步 (0x0079/0x007A)
- 数据采集 (0x00C9-0x00D0)
- 佩戴检测 (0x0105/0x0106)
开发环境
- Android Studio
- Java 11
- Gradle 构建系统
- Android SDK 34 (最低支持SDK 26)
依赖
- Android SerialPort API
- Android SDK
- OkHttp 网络库
- Aliyun Core
- FastJSON
- AndroidBootstrap UI库
- 阿里云视频云SDK
- 阿里云OSS存储
- 通义千问多模态对话SDK
WiFi保活功能
应用实现了WiFi保活功能,通过Android的WifiLock机制保持WiFi连接稳定:
- 核心实现:WiFiKeepAliveManager类管理WifiLock生命周期
- 网络监控:通过NetworkStateMonitor监听网络状态变化
- 自动管理:WiFi连接时自动获取锁,断开时释放锁
- 资源优化:合理管理资源,避免不必要的电量消耗
项目结构
├── app/ # 应用主模块
│ ├── src/ # 源代码目录
│ │ ├── main/ # 主要源代码
│ │ │ ├── java/ # Java源代码
│ │ │ │ ├── com/ismart/ib86/ # 主包
│ │ │ │ │ ├── app/ # 应用入口
│ │ │ │ │ ├── common/ # 通用组件
│ │ │ │ │ ├── feature/ # 功能模块
│ │ │ │ │ │ ├── gpio/ # GPIO功能
│ │ │ │ │ │ ├── motor/ # 电机控制
│ │ │ │ │ │ ├── network/ # 网络功能
│ │ │ │ │ │ ├── serial/ # 串口通信
│ │ │ │ │ ├── robotFace/ # 机器人表情
│ │ │ │ │ ├── view/ # 视图组件
│ │ │ ├── res/ # 资源文件
│ │ │ ├── assets/ # 资源文件
│ │ │ ├── libs/ # 本地依赖库
│ │ ├── test/ # 单元测试
│ ├── libs/ # 依赖库
│ └── build.gradle # 模块构建配置
├── gradle/ # Gradle配置
├── docs/ # ASR通信协议等文档资料
├── build.gradle # 项目构建配置
└── settings.gradle # 项目设置
构建与安装
-
克隆仓库
git clone <仓库地址> cd robot/app
-
使用Gradle构建
./gradlew assembleDebug # Linux/Mac gradlew.bat assembleDebug # Windows
-
安装APK
adb install app/build/outputs/apk/debug/app-debug.apk
权限需求
应用需要以下权限:
- 存储读写权限
- 网络访问权限
- 蓝牙权限(包括BLE)
- WiFi状态访问和修改权限
- 位置权限(用于蓝牙配网)
- 录音权限
- 系统弹窗权限
许可证
本项目采用MIT许可证 - 详见LICENSE文件。
贡献指南
- Fork本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature
) - 提交更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开Pull Request
Description
Languages
Java
51.3%
C
42.1%
Kotlin
5.6%
C++
0.9%