Files
Obsidian/项目文档/徐工/语音/YX_Voice_模块详细文档.md
T
2026-11-05 14:35:04 +08:00

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