来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247485664&idx=1&sn=59e50945b9ba82483a56cbb195237b55&chksm=f95c9367ce2b1a71c0dece2c4ae4e8e9bf70f4aed1de753670a32648699481334810da642341#rd

BLE Chat Android

一个基于蓝牙低功耗(BLE)技术的 Android 聊天应用,可实现附近设备间的通信。

📱 概述

BLE_Chat 是一款 Androi 应用程序,允许用户发现附近的 BLE 设备并与之交换消息。该应用采用 Jetpack Compose 构建的现代化 UI,并实现了BLE通信协议以实现实时消息传递。

📸 Screenshots

🚀 功能特性

BLE设备发现

扫描并发现附近的BLE设备

实时消息传递

与连接的设备发送和接收消息

现代化UI

使用 Jetpack Compose 构建流畅的用户体验

权限管理

正确管理BLE和媒体访问的Android权限

多平台支持

兼容 Android 7.0 (API级别24)及以上版本

🛠️ 技术详情

架构

MVVM模式

使用 ViewModel 和 LiveData 进行状态管理

Jetpack Compose

用于构建原生 Android 界面的现代化UI工具包

导航组件

使用 Compose Navigation 处理屏幕导航

BLE实现

自定义 BLE 协议实现消息交换

核心组件

MainActivity

应用程序入口点

ChatViewModel

管理聊天状态和 BLE 操作

DeviceListScreen

显示可连接的 BLE 设备

ChatScreen

处理消息显示和输入

BLEProtocol

实现BLE通信协议

BluetoothUtils

BLE操作的辅助函数

📋 系统要求

Android 7.0 (API级别24)或更高版本

蓝牙低功耗(BLE)支持

摄像头(用于可选的媒体功能)

🔧 权限说明

应用需要以下权限:

BLUETOOTH

及相关权限用于设备通信

ACCESS_FINE_LOCATION

用于 BLE 扫描

CAMERA

用于媒体功能

存储权限用于媒体处理

📦 依赖项

主要依赖包括:

Jetpack Compose UI 工具包

Android Lifecycle 组件

Navigation Compose

CameraX 用于相机功能

Gson 用于 JSON 序列化

🚀 快速开始

前提条件

Android Studio Flamingo 或更高版本

支持 BLE 的 Android 设备(或支持 BLE 的模拟器)

安装步骤

克隆仓库:

git clone https://github.com/buld-your-own-x-with-ai/BLE_Chat_Android.git

在 Android Studio 中打开项目

构建并运行应用程序

构建项目

在 Android Studio 中打开项目

选择”Build” > “Make Project” 或按 Ctrl+F9(Windows/Linux)或Cmd+F9(Mac)

APK 文件将生成在 app/build/outputs/apk/ 目录中

📱 使用说明

在 Android 设备上启动应用

在提示时授予必要的权限

如果尚未启用蓝牙,请启用蓝牙

使用扫描按钮扫描附近的设备

选择要连接的设备

开始与连接的设备聊天

📁 项目结构

app/

├── src/

│   ├── main/

│   │   ├── java/com/haotek/ble_chat/

│   │   │   ├── ble/          # BLE实现

│   │   │   ├── models/       # 数据模型

│   │   │   ├── protocol/     # 通信协议

│   │   │   ├── ui/           # UI 组件

│   │   │   ├── utils/        # 工具类

│   │   │   └── MainActivity.kt

│   │   └── res/              # 资源文件

│   └── build.gradle.kts

└── build.gradle.kts

🤝 贡献指南

欢迎贡献!请随时提交 Pull Request。

Fork 仓库

创建功能分支 (git checkout -b feature/AmazingFeature)

提交更改 (git commit -m ‘Add some AmazingFeature’)

推送到分支 (git push origin feature/AmazingFeature)

打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 详情请见LICENSE文件。

🙏 致谢

使用 Android Jetpack Compose构建

使用 Android BLE APIs

受各种 BLE 通信项目的启发

📞 技术支持

如需支持,请在 GitHub 仓库中提交 issue。

image-1