# Demo-Android 使用说明

`demo-android` 用于验证 SDK 接入、ASR/TTS 连接与调用链路。

## 1. 编译与安装

```bash
cd online-speech-sdk-demo
./gradlew :demo-android:assembleDebug
```

APK 输出：

- `demo-android/build/outputs/apk/debug/demo-android-debug.apk`

## 2. 配置项

Demo 默认从 `online-speech-sdk-demo/gradle.properties` 读取：

- `online.demo.domain`
- `online.demo.ak`
- `online.demo.sk`
- `online.demo.uid`
- `online.demo.deviceId`
- `online.demo.asrPath`
- `online.demo.ttsPath`

## 3. 页面说明

## 3.1 初始化页

- `Init SDK (create clients)`：创建 SDK、ASR client、TTS client
- `Close SDK + Unbind`：释放 SDK 和连接、解绑 open-sdk 服务

## 3.2 ASR 页

- `connect()`：建立 ASR WebSocket
- `startAsrWithMic()`：通过 open-sdk 录音并自动推流
- `stopAsrWithMic()`：停止录音并结束 ASR
- `close()`：关闭 ASR 连接

## 3.3 TTS 页

- `connect()`：建立 TTS WebSocket
- `speak(default text)`：播放默认测试文案
- `stop()`：停止当前 TTS 播放
- `close()`：关闭 TTS 连接

## 4. 调试日志

- 页面底部日志区：**最新日志在最上方**
- Logcat Tag：
  - `OnlineSpeechDemo`
  - `OpenSdkAudioSource`
  - `AndroidPcmTtsPlayer`

建议过滤：

```bash
adb logcat | rg "OnlineSpeechDemo|OpenSdkAudioSource|AndroidPcmTtsPlayer"
```

## 5. 常见问题

- `EACCES / Download/glass3Log`：Demo 已默认跳过 `GlassSdk.registerClient()`，避免 Android 12 公共目录写入权限问题
- ASR 无结果：确认先 `connect()` 再 `startAsrWithMic()`
- TTS 无声音：确认先 `connect()`，并检查设备音量与路由
