8.8 KiB
8.8 KiB
YX_Voice 模块详细文档
1. 应用入口 (YxApplication)
文件路径: com/yaxon/voice/YxApplication.java
职责:
- 继承
AutoMotiveSDKApplication,提供车载SDK上下文 - 初始化IPC通信框架
- 初始化崩溃处理机制
- 启动语音服务
初始化流程:
onCreate()
├── ToolInit.init() // 工具类初始化
├── CrashExceptionHandler // 崩溃处理
├── YxIPC.bind() // IPC绑定
│ └── ProtocolManager // 设置消息监听
├── PackagePermissionManager // 权限管理
└── startVoiceService() // 启动服务
2. 语音服务 (VoiceService)
文件路径: com/yaxon/voice/service/VoiceService.java
继承关系: VoiceService extends BaseVoiceService implements ConnectionListener
职责:
- 与TXZ语音助手建立连接
- 接收并分发语音指令
- 管理各模块监听器生命周期
初始化流程:
onCreate()
├── initTxz() // 初始化TXZ连接
│ ├── TxzProtocolManager.initialize()
│ ├── TxzProtocolManager.connect()
│ └── addConnectionListener()
├── registerTxzCommandReceiver() // 注册指令接收器
├── BlueToothHelper.register() // 蓝牙监听
├── VoiceManager.registerCallbacks() // 车辆状态监听
└── 注册各种Receiver和Callback
TXZ连接成功同步:
public void onConnected() {
VoiceManager.getInstance().setVoiceBind(true);
VoiceManager.VOICE_EVENT_HELPER.sendVoiceBindSuccess(null);
AppHelper.getInstance().startScanApp();
initNotifyCarConfig(); // 车辆配置
initNotifyBluetoothStatus(); // 蓝牙状态
initNotifyVolumeStatus(); // 音量状态
initNotifyCarSettingStatus(); // 车辆设置状态
sendBrightnessStatus(); // 亮度状态
}
3. 协议管理器 (ProtocolManager)
文件路径: com/yaxon/voice/core/ProtocolManager.java
设计模式: 单例模式
职责:
- 实现IPC消息监听接口 (
MessageListener,RemoteListener) - 将消息分发给协议处理器
类图:
┌─────────────────────────────────┐
│ ProtocolManager │
├─────────────────────────────────┤
│ - sInstance: ProtocolManager │
│ - mProtocolHandler: IProtocolHandler │
├─────────────────────────────────┤
│ + getInstance() │
│ + setProtocolHandler() │
│ + onResponse() │ ← MessageListener
│ + onBindRemote() │ ← RemoteListener
│ + release() │
└─────────────────────────────────┘
4. 协议处理器 (YxProtocolHandler)
文件路径: com/yaxon/voice/core/YxProtocolHandler.java
职责:
- 维护包名到协议逻辑类的映射
- 在后台线程处理协议分发
5. 语音管理器 (VoiceManager)
文件路径: com/yaxon/voice/core/VoiceManager.java
设计模式: 单例模式
职责:
- 管理TXZ绑定状态
- 管理AVM/DVR前台状态
- 注册车辆状态回调(空调、设置、智能驾驶)
- 提供AudioTrackPlayer实例
状态管理:
private boolean isVoiceBind; // TXZ绑定状态
private AtomicBoolean isAvm; // AVM前台状态
private AtomicBoolean isDvr; // DVR前台状态
6. 语音事件助手 (VoiceEventHelper)
文件路径: com/yaxon/voice/helper/VoiceEventHelper.java
职责:
- 封装所有语音控制操作
- 与各模块进行IPC通信
- 通知TXZ状态变化
主要功能分类:
| 类别 | 方法示例 | 说明 |
|---|---|---|
| 空调控制 | sendAirSwitch, sendAcSwitch, sendAirTempTo | 温度、风速、模式控制 |
| 音量控制 | sendVolumeTo, sendVolumeMute, sendVolumeElevator | 音量调节、静音 |
| 屏幕控制 | setMpuBrightnessLevel, sendScreenOff, sendScreenClean | 亮度、熄屏、清洁 |
| 系统设置 | switchSystemLanguage, switchDistanceUnit | 语言、单位切换 |
| 车窗控制 | sendWindowSwitch, sendWindowPercent | 开关、百分比控制 |
| 语音设置 | sendSwitchVoiceWakeup, customWakeupWord, switchVoiceMan | 唤醒词、发音人设置 |
7. 接收器与观察者
7.1 BroadcastReceiver
| 类名 | 监听Action | 功能 |
|---|---|---|
| BootReceiver | ACTION_BOOT_COMPLETED | 开机启动服务 |
| PowerReceiver | ACTION_SCREEN_ON/OFF | 屏幕亮灭监听 |
| NetworkChangedReceiver | WIFI_STATE_CHANGED | WiFi状态变化 |
| BluetoothMonitorReceiver | Bluetooth状态广播 | 蓝牙连接状态 |
| HomeStatusReceiver | ACTION_HOME_STATUS_CHANGED | 主页状态变化 |
| VolumeChangedCallback | 音量变化回调 | 音量变化监听 |
| SettingReceiver | STREAM_MUTE_CHANGED_ACTION | 静音状态变化 |
7.2 ContentObserver
| 类名 | 监听URI | 功能 |
|---|---|---|
| ScreenSaversObserver | STATE_URI + STANDBY_DIALOG_STATE | 屏保状态 |
| MediaObserver | MEDIA_SOURCE_URI, MUSIC_INFO_URI | 媒体信息 |
| ReverseObserver | 倒车相关URI | 倒车状态 |
| BrightnessObserver | MPU_BRIGHTNESS_LEVEL | 亮度变化 |
| SettingCommonObserver | VIDEO_LIMIT_URI等 | 通用设置 |
8. 文件结构
YX_Voice/
├── src/main/java/com/yaxon/voice/
│ ├── YxApplication.java # 应用入口
│ ├── api/ # 接口定义
│ │ ├── IProtocolHandler.java
│ │ └── IProtocolLogic.java
│ ├── constant/ # 常量定义
│ │ ├── PackageConst.java
│ │ ├── VoiceNewProtocolConst.java
│ │ └── VoiceProtocolConst.java
│ ├── core/ # 核心类
│ │ ├── PackagePermissionManager.java
│ │ ├── ProtocolManager.java
│ │ ├── VoiceManager.java
│ │ └── YxProtocolHandler.java
│ ├── crash/ # 崩溃处理
│ │ └── CrashExceptionHandler.java
│ ├── helper/ # 辅助类
│ │ ├── AppHelper.java
│ │ ├── AudioFocusHelper.java
│ │ ├── AudioTrackPlayer.java
│ │ ├── BlueToothHelper.java
│ │ ├── BrightnessHelper.java
│ │ ├── ContactHelper.java
│ │ ├── HandlerHelper.java
│ │ ├── JsonHelper.java
│ │ ├── McuHelper.java
│ │ ├── VoiceEventHelper.java
│ │ ├── VolumeHelper.java
│ │ └── WifiHelper.java
│ ├── impl/ # 回调实现
│ │ ├── CarAirCallback.java
│ │ ├── CarIntelligentDrivingCallBack.java
│ │ └── CarSettingCallback.java
│ ├── protocol/ # 协议实现
│ │ ├── AirProtocol.java
│ │ ├── AvmProtocol.java
│ │ ├── BaseProtocol.java
│ │ ├── BluetoothProtocol.java
│ │ ├── CarControlProtocol.java
│ │ ├── DvrProtocol.java
│ │ ├── FactoryProtocol.java
│ │ ├── MediaProtocol.java
│ │ ├── SettingProtocol.java
│ │ ├── SystemUIProtocol.java
│ │ ├── VoiceProtocol.java
│ │ └── YxProtocol.java
│ ├── provider/ # ContentObserver
│ │ ├── BrightnessObserver.java
│ │ ├── MediaObserver.java
│ │ ├── ReverseObserver.java
│ │ ├── ScreenSaversObserver.java
│ │ └── SettingCommonObserver.java
│ ├── receiver/ # 广播接收器
│ │ ├── BluetoothMonitorReceiver.java
│ │ ├── BootReceiver.java
│ │ ├── HomeStatusReceiver.java
│ │ ├── NetworkChangedReceiver.java
│ │ ├── PowerReceiver.java
│ │ ├── SettingReceiver.java
│ │ ├── TestReceiver.java
│ │ └── VolumeChangedCallback.java
│ ├── service/ # 服务
│ │ ├── BaseVoiceService.java
│ │ └── VoiceService.java
│ └── utils/ # 工具类
│ ├── AppUtils.java
│ ├── BroadcastUtils.java
│ └── DataConvert.java
├── libs/ # 依赖库
│ ├── library-release-0127.aar
│ └── tools.jar
├── assets/tts/ # TTS音频资源
└── build.gradle
文档整理日期: 2026-05-27