# android_ble_ecg **Repository Path**: YIJia_Kitchen_Bath/android_ble_ecg ## Basic Information - **Project Name**: android_ble_ecg - **Description**: 用于ecg心电显示 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android BLE ECG Library 一个功能强大的 Android Bluetooth Low Energy (BLE) 蓝牙低功耗库,专门为数据传输场景优化设计。 ## 最新更新 (v3.3.1+) - **实时通知监控**: 在设备详情页新增了实时通知数据监控列表,支持“文件列表样式”显示。 - **数据解析增强**: - 支持将收到的 RAW 数据按换行符 `\n` 自动拆分为多个条目。 - 每次收到新数据包时自动重新解析并覆盖显示,确保数据实时性。 - **MTU 优化**: 默认支持并自动协商 247 字节 MTU,大幅提升大数据包传输效率。 - **UI/UX 改进**: - 修复了搜索过滤栏的清除 (`iv_clear`) 和展开 (`iv_expand`) 功能。 - 优化了扫描列表渲染逻辑,减少 UI 卡顿。 - 详情页特征值列表同时显示十六进制和原始字符数据。 - **稳定性修复**: - 修复了返回图标导致的重复连接问题。 - 解决了 `JankTracker` 引起的系统级 UI 性能日志干扰。 ## 功能特性 - **设备扫描**: 支持 BLE 设备扫描,可配置扫描时长和过滤条件。 - **连接管理**: 支持单设备连接、多设备批量连接、自动重连。 - **数据通信**: - 通知 (Notify) 特征值监听与实时解析。 - 读 (Read) 特征值读取。 - 写 (Write) 特征值写入。 - 大数据分包写入 (Entity Write),适合 OTA 升级和大文件传输。 - **MTU 管理**: 支持动态设置 MTU 大小。 - **队列机制**: 内置写队列和连接队列,有效管理并发请求。 - **日志系统**: 可配置的详细日志输出,方便调试。 ## 项目结构 ``` . ├── core/ # BLE 核心库模块 │ └── src/main/java/ # 包含 Ble.java, Options.java 等核心逻辑 ├── java-sample/ # Java 示例应用 (推荐参考) │ └── src/main/java/com/example/admin/mybledemo/ │ ├── ui/ # 包含 BleActivity (扫描) 和 DeviceInfoActivity (详情) │ ├── adapter/ # 列表适配器 │ └── MyBleWrapperCallback.java # 全局回调封装 ├── kotlin-sample/ # Kotlin 示例应用 └── apk/ # 预编译测试 APK ``` ## 快速开始 ### 1. 初始化 在 `Application` 中初始化 BLE 配置: ```java Ble.options() .setLogBleEnable(true) .setThrowBleException(true) .setAutoConnect(false) .setConnectTimeout(10 * 1000) .setMtu(247) // 设置 MTU .init(this); ``` ### 2. 扫描设备 ```java Ble.getInstance().startScan(scanCallback); ``` ### 3. 连接与通知 ```java Ble.getInstance().connect(device, connectCallback); // 连接成功后开启通知 Ble.getInstance().enableNotify(device, true, notifyCallback); ``` ## 权限要求 项目需要以下权限: - `android.permission.BLUETOOTH` - `android.permission.BLUETOOTH_ADMIN` - `android.permission.ACCESS_FINE_LOCATION` - `android.permission.ACCESS_COARSE_LOCATION` - `android.permission.BLUETOOTH_SCAN` (Android 12+) - `android.permission.BLUETOOTH_CONNECT` (Android 12+) --- *本项目持续优化中,欢迎提交 Issue 或 Pull Request。*