5.6 KiB
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