# 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连接成功同步**: ```java 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实例 **状态管理**: ```java 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*