- 在设置页面添加基于机器人位置列表的下拉选择器,支持手动设置当前位置 - 改进特殊任务模式的开关逻辑,避免与当前任务状态冲突 - 优化MQTT指令处理,新增terminate、continue命令,完善TTS暂停/恢复机制 - 添加表情动画的眨眼效果,改进导航到达和巡逻模式的状态管理 - 重构颜色主题为浅色风格,并添加横屏布局支持 - 更新README文档,补充MQTT指令说明和本地验证步骤
81 lines
3.4 KiB
Markdown
81 lines
3.4 KiB
Markdown
# Temi 机器人应用开发与预览指南
|
||
|
||
本项目是一个基于 Temi SDK 的 Android 应用程序,包含主界面和网络 IP 设置功能。
|
||
|
||
## 1. 预览与运行环境
|
||
|
||
### 推荐工具:Android Studio
|
||
由于 Android 应用依赖于复杂的构建系统 (Gradle) 和特定的运行时环境 (Android OS),**无法像网页那样直接通过浏览器或简单的编辑器插件预览**。
|
||
|
||
最标准的开发和预览工具是 **Android Studio** (官方 IDE)。
|
||
|
||
### Trae 的角色
|
||
Trae 非常适合编写代码、管理项目结构和进行逻辑开发。但为了查看应用的实际运行效果(UI 和交互),你需要将代码编译成 APK 并安装到设备上,这通常需要 Android Studio 的配合。
|
||
|
||
---
|
||
|
||
## 2. 如何在另一台电脑上运行
|
||
|
||
### 步骤 1: 安装 Android Studio
|
||
请访问 [Android Studio 官网](https://developer.android.com/studio) 下载并安装最新版本。
|
||
|
||
### 步骤 2: 导入项目
|
||
1. 打开 Android Studio。
|
||
2. 选择 **Open** (打开项目)。
|
||
3. 导航到本项目所在的文件夹 `lzwcai-terminal-temi` 并点击 OK。
|
||
4. 等待 Android Studio 自动同步 Gradle 依赖(这可能需要几分钟,取决于网络)。
|
||
|
||
### 步骤 3: 运行应用 (两种方式)
|
||
|
||
#### 方式 A: 连接 Temi 机器人 (强烈推荐)
|
||
Temi SDK 的很多功能(如语音、导航、跟随)依赖于机器人的硬件传感器。
|
||
1. 确保 Temi 机器人已开启 **开发者模式** (设置 -> 通用 -> 开发者选项)。
|
||
2. 使用 USB 线(通常是 USB-A 转 USB-A 或通过背部接口)将电脑连接到 Temi。
|
||
3. 或者使用 **ADB over Wi-Fi** (确保电脑和 Temi 在同一 Wi-Fi 下)。
|
||
4. 在 Android Studio 顶部工具栏选择连接的设备,点击 **Run** (绿色三角形按钮)。
|
||
|
||
#### 方式 B: 使用 Android 模拟器 (仅限 UI 预览)
|
||
如果你身边没有机器人,可以使用模拟器预览界面布局,但会报错或功能受限。
|
||
1. 在 Android Studio 中点击 **Device Manager** 创建一个虚拟设备 (推荐 Pixel 系列,API 30+)。
|
||
2. 运行模拟器。
|
||
3. **注意**:由于模拟器没有 Temi 的系统服务,`Robot.getInstance()` 可能会导致崩溃或返回错误。
|
||
- *提示*:为了在模拟器上查看 UI,你可能需要暂时注释掉 `MainActivity.kt` 中调用 `Robot` 的代码。
|
||
|
||
---
|
||
|
||
## 3. 项目结构说明
|
||
|
||
- **主界面**: `app/src/main/java/.../MainActivity.kt`
|
||
- 包含日志显示和跳转设置的按钮。
|
||
- 初始化 Robot SDK。
|
||
- **设置界面**: `app/src/main/java/.../SettingsActivity.kt`
|
||
- 用于设置和保存网络 IP 地址。
|
||
- **布局文件**:
|
||
- `app/src/main/res/layout/activity_main.xml` (主页布局)
|
||
- `app/src/main/res/layout/activity_settings.xml` (设置页布局)
|
||
|
||
## 4. MQTT 指令与行为
|
||
|
||
应用订阅 `robot/cmd`,接收 JSON 指令。
|
||
|
||
### 动作列表
|
||
- `recharge` 前往充电桩
|
||
- `goto` 前往指定地点(字段 `location` 或 `target`)
|
||
- `speak` 立即播报(字段 `text` 或 `speech`)
|
||
- `stream` 流式播报(字段 `text` 或 `content`),按句号/感叹号/问号/换行分句
|
||
- `stop` 暂停 TTS 与播报队列,不清空 stream buffer
|
||
- `continue` 继续播报,优先重播被中断的那句话
|
||
- `terminate` 终止导航与 TTS,清空队列和 buffer
|
||
|
||
### special 模式说明
|
||
- special 是否启用只看设置页开关 `special_task_mode`
|
||
- setCurrentTask 不会开启或关闭 special
|
||
- special 开启时,会跳过门控与问候等场景逻辑
|
||
|
||
## 5. 本地验证
|
||
|
||
```bash
|
||
.\gradlew.bat :app:installDebug
|
||
```
|
||
|