# SmartGlasses **Repository Path**: elfbobo_admin_admin/smart-glasses ## Basic Information - **Project Name**: SmartGlasses - **Description**: 一个专注于AI眼镜智能演示的项目,集成了先进的AI算法和硬件优化,支持多种应用场景,旨在为开发者提供高效、便捷的智能眼镜开发平台。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartGlasses 智能眼镜应用 ## 项目简介 SmartGlasses 是一个基于 Android 平台的智能眼镜应用系统,包含手机端(mobile)和眼镜端(glass)两个模块。该系统支持蓝牙通信、WiFi P2P 连接、语音合成(TTS)、音频流式传输、摄像头拍照/录像、隐患识别、AI 聊天、工单管理等功能。 ## 项目结构 ``` SmartGlasses/ ├── mobile/ # 手机端应用 │ ├── src/main/ │ │ ├── java/ │ │ │ └── com/yuexin/mobile/ │ │ │ ├── adapter/ # 适配器 │ │ │ ├── base/ # 基础类 │ │ │ ├── data/ # 数据层 │ │ │ │ ├── remote/ # 远程数据源 │ │ │ │ └── repository/ # 数据仓库 │ │ │ ├── model/ # 数据模型 │ │ │ ├── utils/ # 工具类 │ │ │ ├── viewmodel/ # ViewModel │ │ │ └── *Activity.kt # 各个页面 │ │ ├── res/ # 资源文件 │ │ └── AndroidManifest.xml │ ├── libs/ # 第三方库(讯飞 TTS) │ └── build.gradle.kts ├── glass/ # 眼镜端应用 │ ├── src/main/ │ │ ├── java/ │ │ │ └── com/yuexin/glass/ │ │ │ ├── adapter/ # 适配器 │ │ │ ├── annotation/ # 注解 │ │ │ ├── base/ # 基础类 │ │ │ ├── camera/ # 相机管理 │ │ │ ├── componet/ # 自定义组件 │ │ │ ├── data/ # 数据层 │ │ │ ├── recyclerView/ # RecyclerView │ │ │ ├── utils/ # 工具类 │ │ │ └── *Activity.kt # 各个页面 │ │ ├── res/ # 资源文件 │ │ └── AndroidManifest.xml │ └── build.gradle.kts ├── gradle/ # Gradle 配置 ├── build.gradle.kts # 项目级构建配置 ├── settings.gradle.kts # 项目设置 └── README.md # 项目说明文档 ``` ## 主要功能 ### 手机端(mobile) 1. **设备连接管理** - 蓝牙设备扫描与连接 - WiFi P2P 连接管理 - 设备详情查看 2. **工单管理** - 工单列表查看 - 工单详情查看 - 工单确认与操作 - 工单监督 3. **任务管理** - 任务列表查看 - 新建任务 - 任务详情查看 4. **智能识别** - 资产识别 - 设备识别 - 智能识别 - 隐患识别 5. **AI 聊天** - 与 AI 进行对话 - 语音输入 6. **语音合成(TTS)** - 支持讯飞 TTS - 支持自定义 API TTS - 音频流式传输到眼镜端 ### 眼镜端(glass) 1. **主界面** - 应用图标展示 - 滚动切换应用 - 语音启动应用 2. **相机功能** - 拍照 - 录像 - 自动拍照/录像 - 自动关闭 3. **隐患识别** - 拍照识别 - 图片预览 - 音频播放(TTS) - 文本消息显示 4. **AI 聊天** - 语音输入 - AI 回复显示 5. **资产识别** - 资产信息展示 6. **工单监督** - 工单信息查看 ## 技术栈 ### 核心技术 - **Kotlin**:主要开发语言 - **Android SDK**:Android 平台开发 - **Coroutines**:协程,异步编程 - **Lifecycle**:生命周期管理 - **ViewModel**:MVVM 架构 ### 第三方库 - **Rokid Glass SDK**:智能眼镜 SDK - **讯飞 TTS SDK**:语音合成 - **Retrofit**:网络请求 - **Glide**:图片加载 - **OkHttp**:HTTP 客户端 ### 架构模式 - **MVVM**:Model-View-ViewModel - **Repository Pattern**:数据仓库模式 - **Dependency Injection**:依赖注入 ## 环境要求 ### 开发环境 - Android Studio Hedgehog | 2023.1.1 或更高版本 - JDK 17 或更高版本 - Gradle 8.0 或更高版本 ### 运行环境 - **手机端**:Android 7.0(API 24)或更高版本 - **眼镜端**:Android 7.0(API 24)或更高版本 - **智能眼镜**:Rokid Glass 设备 ## 安装与运行 ### 1. 克隆项目 ```bash git clone cd SmartGlasses ``` ### 2. 打开项目 使用 Android Studio 打开项目根目录。 ### 3. 同步 Gradle 等待 Gradle 同步完成。 ### 4. 配置签名 在 `mobile/build.gradle.kts` 和 `glass/build.gradle.kts` 中配置签名信息。 ### 5. 运行应用 - **手机端**:选择 `mobile` 模块,连接手机设备,点击运行 - **眼镜端**:选择 `glass` 模块,连接眼镜设备,点击运行 ## 权限说明 ### 手机端权限 - **基础权限**:INTERNET、ACCESS_NETWORK_STATE - **摄像头权限**:CAMERA、RECORD_AUDIO、WAKE_LOCK - **存储权限**:READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE - **蓝牙权限**:BLUETOOTH_SCAN、BLUETOOTH_CONNECT、BLUETOOTH_ADVERTISE - **前台服务**:FOREGROUND_SERVICE、FOREGROUND_SERVICE_CAMERA ### 眼镜端权限 - **存储权限**:READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE、MANAGE_EXTERNAL_STORAGE - **摄像头权限**:CAMERA、RECORD_AUDIO - **网络权限**:INTERNET、ACCESS_WIFI_STATE、CHANGE_WIFI_STATE - **蓝牙权限**:BLUETOOTH_SCAN、BLUETOOTH_CONNECT、BLUETOOTH_ADVERTISE - **位置权限**:ACCESS_COARSE_LOCATION、ACCESS_FINE_LOCATION - **系统权限**:SYSTEM_ALERT_WINDOW、WRITE_SETTINGS、WAKE_LOCK ## 核心功能实现 ### 1. TTS 语音合成 支持两种 TTS 方式: #### 讯飞 TTS ```kotlin TTSManager.generateAndStreamTts( context = context, ttsApiService = ttsApiService, content = "要合成的文本", serverId = BuildConfig.SDK_SERVER_ID, ttsType = TTSManager.TTSType.XunFei, onSuccess = { // 成功回调 }, onError = { errorMsg -> // 错误回调 } ) ``` #### 自定义 API TTS ```kotlin TTSManager.generateAndStreamTts( context = context, ttsApiService = ttsApiService, content = "要合成的文本", serverId = BuildConfig.SDK_SERVER_ID, ttsType = TTSManager.TTSType.API, onSuccess = { // 成功回调 }, onError = { errorMsg -> // 错误回调 } ) ``` ### 2. 音频流式传输 手机端生成 WAV 文件后,分块发送到眼镜端: ```kotlin // 手机端分块发送 private fun sendWavDataByChunks(audioData: ByteArray) { CoroutineScope(Dispatchers.IO).launch { val bufferSize = 1024 while (sentSize < totalSize) { val chunk = audioData.copyOfRange(sentSize.toInt(), sentSize.toInt() + chunkSize) PSecuritySDK.getMessageService()?.sendAudioStreamDataByClassicBT(chunk) sentSize += chunkSize delay(5) } } } ``` 眼镜端接收并播放: ```kotlin override fun onAudioStream(buffer: ByteArray) { // 跳过 WAV 文件头(44字节) val dataToWrite = if (!hasSkippedWavHeader) { hasSkippedWavHeader = true buffer.copyOfRange(44, buffer.size) } else { buffer } audioTrack.write(dataToWrite, 0, dataToWrite.size) } ``` ### 3. 相机功能 支持自动拍照/录像: ```kotlin val intent = Intent(this, CameraPageActivity::class.java).apply { putExtra(CameraPageActivity.EXTRA_MODE, "photo") // 或 "video" putExtra(CameraPageActivity.EXTRA_AUTO_TRIGGER, true) putExtra(CameraPageActivity.EXTRA_AUTO_FINISH, true) } startActivityForResult(intent, REQUEST_CODE_CAMERA) ``` ### 4. 蓝牙通信 使用 Rokid SDK 进行蓝牙通信: ```kotlin // 发送文本消息 PSecuritySDK.getMessageService()?.sendTextMessageByClassicBT(message, serverId) // 发送音频流 PSecuritySDK.getMessageService()?.sendAudioStreamDataByClassicBT(audioData) // 发送文件 FileManager.sendFileByBluetooth(deviceAddress, filePath, listener, callback) ``` ## 项目配置 ### 1. 讯飞 TTS 配置 在 `mobile/src/main/java/com/yuexin/mobile/viewmodel/BaseViewModel.kt` 中配置讯飞 AppID: ```kotlin val appId = "your_xunfei_app_id" SpeechUtility.createUtility(context, "appid=$appId") ``` ### 2. 服务器配置 在 `mobile/build.gradle.kts` 和 `glass/build.gradle.kts` 中配置服务器地址: ```kotlin buildTypes { debug { buildConfigField("String", "BASE_URL", "\"http://your-debug-server\"") } release { buildConfigField("String", "BASE_URL", "\"http://your-release-server\"") } } ``` ### 3. SDK Server ID 配置 ```kotlin buildConfigField("String", "SDK_SERVER_ID", "\"YourServerId\"") ``` ## 开发指南 ### 代码规范 - 使用 Kotlin 编写代码 - 遵循 Android 编码规范 - 使用 MVVM 架构模式 - 使用协程进行异步操作 - 使用 ViewBinding 进行视图绑定 ### 命名规范 - **类名**:大驼峰命名法(PascalCase) - **方法名**:小驼峰命名法(camelCase) - **变量名**:小驼峰命名法(camelCase) - **常量名**:全大写,下划线分隔(UPPER_SNAKE_CASE) - **资源文件**:小写,下划线分隔(lower_snake_case) ### 注释规范 - 类和公共方法必须添加注释 - 复杂逻辑必须添加注释 - 使用中文注释 ## 常见问题 ### 1. 讯飞 TTS 初始化失败 **问题**:错误码 21002,组件未安装 **解决方案**: - 确保 `libs` 目录下包含讯飞 SDK 的 `.so` 文件 - 检查 `build.gradle.kts` 中的 `jniLibs` 配置 - 确保 AppID 正确 ### 2. 蓝牙连接失败 **问题**:无法连接到眼镜设备 **解决方案**: - 检查蓝牙权限是否授予 - 确保眼镜设备已开启蓝牙 - 尝试重新配对设备 ### 3. 音频播放失败 **问题**:眼镜端收到音频但无法播放 **解决方案**: - 检查 AudioTrack 配置是否正确(采样率、声道、编码格式) - 确保 WAV 文件头已正确跳过 - 检查音频数据是否完整 ### 4. WiFi P2P 连接失败 **问题**:无法建立 WiFi P2P 连接 **解决方案**: - 检查位置权限是否授予 - 确保两台设备都支持 WiFi P2P - 尝试重新连接 ## 更新日志 ### v1.0.0(2026-03-22) - 初始版本发布 - 实现基础功能:蓝牙通信、WiFi P2P、TTS、相机、工单管理等 - 集成讯飞 TTS SDK - 实现音频流式传输 - 实现隐患识别功能 ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 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](LICENSE) 文件 ## 联系方式 - 项目维护者:Yuexin Team - 邮箱:support@yuexin.com - 项目地址:[GitHub Repository URL] ## 致谢 - [Rokid](https://www.rokid.com/) - 智能眼镜 SDK - [科大讯飞](https://www.xfyun.cn/) - 语音合成 SDK - [Android](https://developer.android.com/) - Android 平台 - [Kotlin](https://kotlinlang.org/) - Kotlin 语言