Files
Obsidian/项目文档/同力/蓝牙音乐/06_开发入口_风险点_测试清单.md
2026-11-05 14:35:04 +08:00

5.6 KiB

06_开发入口_风险点_测试清单

开发入口速查

改蓝牙音乐页面

F:\zdCode\tongli\YX_BlueTooth\src\main\res\layout\activity_bluetooth_music.xml
F:\zdCode\tongli\YX_BlueTooth\src\main\java\com\yaxon\bluetooth\main\BluetoothMusicActivity.java

常见改动:

改封面
改标题/歌手显示
改进度条
改播放按钮
改未连接页面
增加音效入口
增加跳转蓝牙设置

改播放控制

F:\zdCode\tongli\YX_BlueTooth\src\main\java\com\yaxon\bluetooth\viewmodel\BtMusicViewModel.java
F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\manager\BtMusicControlManager.java
F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\modules\BtMusicManager.java
F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\platform\BluetoothAvrcpClient.java

常见改动:

播放前是否强制申请焦点
暂停后是否释放焦点
切歌时是否清默认封面
页面 onResume 是否自动恢复播放
手机端主动播放时是否允许车机出声

改 A2DP 连接

F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\platform\BluetoothConnectListenerClient.java
F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\platform\BluetoothA2dpSinkClient.java
F:\zdCode\tongli\YX_BlueTooth\src\main\java\com\yaxon\bluetooth\viewmodel\BtMusicViewModel.java

常见改动:

A2DP 自动连接
A2DP 断开清理
连接中状态判断
未连接页面状态
蓝牙关闭后的数据清理

改歌曲信息

F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\modules\BtMusicManager.java
F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\modules\BtInfoPushManager.java
F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\model\MusicInfo.java

常见改动:

Unknown 兜底文案
封面为空兜底
不同手机音乐 App 兼容
总时长为 0 的处理
播放进度刷新策略

改 Launcher 卡片

F:\zdCode\tongli\YX_Launcher\src\main\java\com\yaxon\launcher\card\BluetoothMusicCardView.java
F:\zdCode\tongli\YX_Launcher\src\main\res\layout\card_bluetoothmusic.xml
F:\zdCode\tongli\YX_Launcher\src\main\java\com\yaxon\launcher\data\Id3Info.java

常见改动:

卡片 UI
卡片点击进入蓝牙音乐页
卡片控制按钮
卡片进度条
卡片默认态

改音频焦点

F:\zdCode\tongli\YX_BluetoothSDK\src\main\java\com\yaxon\bluetoothsdk\audio\BtMusicAudioManager.java

常见改动:

蓝牙音乐和收音机抢焦点
蓝牙音乐和 USB 音乐抢焦点
来电暂停/恢复
导航播报降音
媒体按键处理
亿连 A2DP 焦点处理

当前代码风险点

风险 文件 说明
isA2dpSinkConnected() 总返回 false BtMusicViewModel、BtMusicControlManager 调了底层但没有 return 结果。
音效按钮未闭环 activity_bluetooth_music.xml 有 iv_sound_effects,但 Activity 没处理点击。
连接蓝牙按钮未闭环 BluetoothMusicActivity tv_connect_btn 点击逻辑被注释。
A2DP 静音底层调用被注释 BluetoothA2dpSinkClient setFluorideAudioTrackGain()、setFluorideStreaming() 没真正调底层。
监听移除方法参数疑似错误 BtMusicManager removeIBtMusicModuleListener() 参数是 IBtSettingModuleListener。

真机测试清单

连接类

用例 预期
手机首次配对并连接 HFP/A2DP 正常连接,页面显示播放界面。
只连 HFP 未连 A2DP 后进入蓝牙音乐页 页面尝试补连 A2DP。
播放中断开手机蓝牙 页面切未连接,Launcher 清空蓝牙音乐信息。
蓝牙开关关闭 页面切未连接,音乐信息清空。

播放控制类

用例 预期
点击播放 申请音频焦点,手机音乐开始播放。
点击暂停 手机音乐暂停,页面按钮切为播放图标。
点击上一曲 手机音乐切上一曲,页面和 Launcher 更新。
点击下一曲 手机音乐切下一曲,页面和 Launcher 更新。
Launcher 点击播放/暂停 蓝牙音乐响应,页面和卡片状态同步。

歌曲信息类

用例 预期
普通歌曲 显示标题、歌手、封面、进度、总时长。
标题为空 显示 Unknown 或打开手机音乐 App 状态。
封面为空 显示默认封面。
总时长为 0 进度条安全显示,不崩溃。

音频焦点类

用例 预期
蓝牙音乐播放时打开收音机 蓝牙音乐暂停或静音,收音机出声。
收音机播放时手机点蓝牙音乐播放 如果蓝牙音乐无焦点,应暂停或不出声。
蓝牙音乐播放时来电 蓝牙音乐暂停,电话优先。
电话结束 根据之前播放状态决定是否恢复蓝牙音乐。

日志关键词

BtMusicManager
BluetoothAvrcpClient
BluetoothA2dpSinkClient
BtMusicAudioManager
BtInfoPushManager
BluetoothMusicActivity
onPlaybackStateChanged
onMetadataChanged
requestAudioFocus
AUDIOFOCUS_GAIN
AUDIOFOCUS_LOSS
onA2dpConnect
onA2dpDisconnect
MUSIC_BT_CONTROL_STATE

排查顺序

1. 先看是否 A2DP connected
2. 再看 MediaBrowserClient 是否连接成功
3. 再看是否收到 onMetadataChanged
4. 再看是否收到 onPlaybackStateChanged
5. 再看点击播放后是否 requestAudioFocus 成功
6. 再看是否调用 BluetoothAvrcpClient.play/pause/next/previous
7. 再看 Launcher 是否写入 MUSIC_BT_CONTROL_STATE
8. 最后看 BtInfoPushManager 是否写入 BT_MUSIC_INFO