认证准备
- 准备测试设备。
- 您需要 5 部 Android 设备。
- 这些设备必须包含:
- 至少一个 Android T (13) 和一个 Android V (15)。
- 至少有一部三星手机和一个 Pixel 手机。
- 例如:
- 1 一加 (Android 10)。
- 3 部三星设备(Android 11、12、13)。
- 1 部 Pixel(搭载 Android 15)。
- 这些设备必须包含:
- 一台不带音频开关的设备:
- 任何 iPhone、PC、支持蓝牙 (BT) 的笔记本电脑,或已停用音频切换开关的 Android 手机。
- 您可以在蓝牙设备详细设置中关闭音频切换开关。
- 除了 5 部测试手机外,多点 (MP) 测试用例 2.8 还需要一部不带音频开关的设备。
- 任何 iPhone、PC、支持蓝牙 (BT) 的笔记本电脑,或已停用音频切换开关的 Android 手机。
- 您需要 5 部 Android 设备。
使用测试账号加入音频开关测试组,以便在测试手机上显示调试通知。
- 这还可让 Google 通过 Google Analytics 收集测试数据。
带 A2DP+HFP 的传统模式
- 确保所有 Android 设备都有 GmsCore 版本
23.xx.xx
或更高版本 已安装。
BLE 与 LE 音频
- 至少有两部参照手机必须支持 LE 音频。
- 例如,一部三星手机和一部支持 LE 音频的 Pixel 手机。
- 确保所有 Android 设备都安装了 GmsCore 版本
24.33.xx
或更高版本。
认证标准
- 在所有测试用例中,目标切换成功率都必须超过 95%。
在需要开关的测试中,配置文件连接并切换活动状态 必须在至少 75% 的触发音频事件后的 3 秒内完成 案例
经典版(支持 A2DP+HFP)
必须通过以下组合执行自测:
- 手机 A=Android S (12) + 手机 B=Android T (13)
- 手机 A=Android T (13) + 手机 B=Android S (12)
BLE 搭配 LE 音频
必须通过以下组合执行自测:
- 手机 A:传统蓝牙,手机 B:传统蓝牙
- 手机 A:LE 音频,手机 B:BT 经典款
- 手机 A:BT Classic,手机 B:LE 音频
(可选)支持双 LE 音频连接的提供程序应测试:
- 手机 A:LE 音频;手机 B:LE 音频
测试指南
被测设备 (DUT) 准备
- 请验证蓝牙设备之前是否与已登录测试 Google 账号的任何手机配对过。
- 如果设备已与测试 Google 账号配对,请执行以下操作:
以清除配对:
<ph type="x-smartling-placeholder">
- </ph>
- 在已配对的设备上:
<ph type="x-smartling-placeholder">
- </ph>
- 前往蓝牙设置。
- 选择“取消保存设备”。
- 开启和关闭飞行模式。
- 在已配对的设备上:
<ph type="x-smartling-placeholder">
- 确保“自动保存设备”处于开启状态。
- 此开关默认处于关闭状态。
- 您可以在“设置”>“Google”>“设备”>“已保存的设备”(每个 DUT 一个)中找到此选项。
- 将蓝牙设备置于配对模式。
- 配对初始蓝牙设备 (A)。
- 将后续的蓝牙设备与其他设备(B、C、D 等)配对。
- 如果设备已与测试 Google 账号配对,请执行以下操作:
以清除配对:
<ph type="x-smartling-placeholder">
范围
- 所有耳机都会从 音频切换自测模板。
- 仅支持 SinglePoint (SP) 模式的耳机会运行以下命令:
- “Generic_test”标签页。
- 支持 MP 模式的耳机会运行以下代码:
<ph type="x-smartling-placeholder">
- </ph>
- Generic_test 标签页。
- “Multipoint_only”标签页。
- 可以切换到 SP 模式的 MP 耳机运行以下命令:
<ph type="x-smartling-placeholder">
- </ph>
- 关闭 MP 的 Generic_test 标签页。
- MP 开启的 Generic_test 标签页。
- MP 开启的 Multipoint_only 标签页。
完成自我休息和自测报告
- 创建一份音频开关自测报告。
- 至少运行所有测试用例两次。
测试应采用以下形式执行:
带 A2DP+HFP 的传统模式
- 设备 B 将是主要的 DUT。
- 在“手机”字段中输入设备 B 的详细信息和“OS”任意字段, 模板。
测试用例示例:
测试手机:
- 设备 1:三星 (Android 13)
- 设备 2:Pixel(Android 12 或 13)及其他设备。
已执行的测试:
- 运行 1.设备 A=Samsung S10+ (12),设备 B=Pixel 7 Pro (13) 列 D:手机=Pixel 7 Pro,操作系统=Android 13
- 运行 2. 设备 A=Pixel 7 Pro (13),设备 B=Pixel 6(12) 列 E:手机=Pixel 6,操作系统=Android 12
自测模板中已完成的测试示例:
BLE 搭配 LE 音频
- 设备 A=Android V (15) + 设备 B=Android T (13)
- 设备 A=Android T (13) + 设备 B=Android V (15)
- 设备 A=Android T (13) + 设备 B=Android S (12)
- 设备 A=Android T (15) + 设备 B=Android V (15)
- 设备 B 将是主要 DUT。
- 在“手机”字段中输入设备 B 的详细信息和“OS”任意字段, 模板。
测试用例示例:
测试手机:
- 设备 1:三星(Android 13)
- 设备 2:Pixel(Android 15)及其他设备。
执行的测试:
- [LEA+BT]:设备 A=Pixel 8 (15),设备 B=Pixel 7 Pro (13),列 D:手机=Pixel 7 Pro,操作系统=Android 13
- [BT+LEA]:“设备 A=Pixel 7 (13)”,“设备 B=Pixel 8 (Android 15)”列 E:手机=Pixel 8,操作系统=Android 15
- [BT+BT]:设备 A=Pixel 7 Pro (13),设备 B=Samsung S10+ (12) 列 E:手机=Samsung S10+,操作系统=Android 12
- [LEA+LEA]:设备 A=Pixel 8 (15),设备 B=Pixel 8(15) 列 E: 手机=Pixel 8,操作系统=Android 15
以下是自测模板中已完成测试的示例:
音频事件:
测试的 4 种音频事件和推荐的测试应用如下:
- 致电:
<ph type="x-smartling-placeholder">
- </ph>
- 内置的手机应用。
- VoIP:任何 VoIP 应用都可以运行,例如:
<ph type="x-smartling-placeholder">
- </ph>
- 音频切换测试应用。
- FB Messenger。
- Line。
- WhatsApp。
- Google Meet。
- Google Meet。
- 媒体:任何音频播放器都可以,例如:
- 音频切换测试应用。
- YouTube Music。
- Apple Music。
- Spotify。
- Google 播客。
- 游戏:
<ph type="x-smartling-placeholder">
- </ph>
- “音频切换测试”应用。
- 致电:
<ph type="x-smartling-placeholder">
调试信息:
加入 fp-sass-partner-test 群组后,系统会启用通知。下面是一些示例:
- 最新状态通知:
- 没有开关通知:
- 切换延迟时间通知:
延迟时间测量
- 切换延迟时间分为两类:
<ph type="x-smartling-placeholder">
- </ph>
- 将蓝牙个人资料连接到已断开连接的 Seeker。
- 这包括所有 SinglePoint 案例,以及一些目标 搜寻器(设备 B)已断开连接。
- 切换已连接的活跃 Seeker。
- 这包括目标查询者(设备 B)已连接的某些 MP 用例。
- 将蓝牙个人资料连接到已断开连接的 Seeker。
- 您可以通过以下两种方式检索延迟时间信息:
音频切换测试应用:
- 在自测期间使用应用触发 VoIP/媒体/游戏音频事件可简化测试设置并缩短 Seeker 的事件延迟时间。
- 可在此处下载最新版本。
- LE Audio VoIP 测试需要手动启用政策: > adb root > adb shell settings put global hidden_api_policy 1 > adb reboot
- 应用安装:
<ph type="x-smartling-placeholder">
- </ph>
- 将 APK 复制到测试手机并打开。
- 或者,您也可以使用
adb install audio_test_app.apk
。
- 如果您看到一个要求访问通知的对话框,请执行以下操作:
<ph type="x-smartling-placeholder">
- </ph>
- 点击“确定”
- 选择“FP SASS 测试”在应用列表中
- 授予通知使用权。
应用概览:
目标提供商
- 点击此按钮后,系统会显示已配对的蓝牙设备列表。选择您要测试的 Feed。
- “连接”和“断开连接”按钮的运作方式与蓝牙设置的设备详情中的按钮相同。
当前状态
- 此字段显示 Seeker 使用 BLE 广告或事件流从提供程序收到的上次连接状态。
- 此处还显示了音频切换调试通知。
搜寻者类型
- 此选项用于在音频串流之间切换设备。
音频类型
带 A2DP+HFP 的传统模式
- VoIP
- 选择此模式会将音频模式更改为
AudioManager.MODE_IN_COMMUNICATION
并调用AudioManager.startBluetoothSco
,然后使用USAGE_VOICE_COMMUNICATION
播放音频。 - 流类型为
STREAM_VOICE_CALL
。 - 提供程序连接状态应在 5 天内切换为
CONNECTED_HFP
。
- 选择此模式会将音频模式更改为
- 媒体
- 如果选择此模式,系统会播放支持 AVRCP 的音频。音频使用类型为:
USAGE_MEDIA
。 - 提供程序连接状态应在 5 秒内切换为
CONNECTED_A2DP_WITH_AVRCP
。 - 连接状态在启动或停止时可能会短暂切换为
CONNECTED_A2DP_ONLY
。
- 如果选择此模式,系统会播放支持 AVRCP 的音频。音频使用类型为:
- 游戏
- 如果选择此模式,系统会播放不支持 AVRCP 的音频。音频使用类型为:
USAGE_GAME
。 - 提供程序连接状态应切换为
CONNECTED_A2DP_ONLY
。
- 如果选择此模式,系统会播放不支持 AVRCP 的音频。音频使用类型为:
BLE 与 LE 音频
VoIP
- 如果选择此模式,音频模式会更改为
AudioManager.MODE_IN_COMMUNICATION
,并使用以下应用播放音频:USAGE_VOICE_COMMUNICATION
。
- 数据流类型为
STREAM_VOICE_CALL
。 - 提供程序连接状态应在 5 秒内切换为
CONNECTED_LE_AUDIO_CALL
。
- 如果选择此模式,音频模式会更改为
媒体
- 选择此模式后,系统会播放流式类型为
STREAM_MUSIC
的音频。音频使用类型为:USAGE_MEDIA
。 - 提供程序连接状态应在 5 秒内切换为
CONNECTED_LE_AUDIO_MEDIA_WITH_CONTROL
。 - 连接状态可能会短暂切换为
启动或停止时为
CONNECTED_LE_AUDIO_MEDIA_WITHOUT_CONTROL
。
- 选择此模式后,系统会播放流式类型为
游戏
- 选择此模式会播放用户无法直接控制的音频。音频使用类型为:
USAGE_GAME
。 - 提供程序连接状态应在 5 秒内切换为
CONNECTED_LE_AUDIO_MEDIA_WITHOUT_CONTROL
。
- 选择此模式会播放用户无法直接控制的音频。音频使用类型为:
“播放”和“停止”按钮
- “播放”和“停止”按钮用于开始或停止音频。
切换结果
- 此字段显示“连接”和“切换”的有效延迟时间。它还 显示在触发了音频事件时拒绝切换的原因 但转换并没有发生
- 延迟时间以毫秒 (ms) 为单位。
- 通常,延迟时间是从“音频切换”触发器的开始时间开始测量的 接收连接的 BT 配置文件或通知多点切换 事件。
- 提供程序触发的切换会测量从音频开始到切换所用的时间。
转储延迟时间
- 以下命令允许用户捕获延迟时间测量值,
运行手动测试:
adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService
- 延迟时间测量值显示在
NearbyDeviceManager
的下方 “SwitchHistory
”部分:
- 延迟时间测量值显示在
NearbyDeviceManager
Nearby Sass device count: 1
Sass device - address:XX:XX:XX:XX:XX:XX, name:Googler's Pixel Buds, accountKey:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, modelId:6edaf7
SwitchHistory
15:30:21:166 - 15:30:25:201, latency 3035ms, Succeed, SASS_TRIGGERED_CONNECT, SASS switch, A2DP
15:34:58:568 - 15:34:58:568, latency 0ms, Succeed, SWITCH_ACTIVE_TO_SELF, SASS switch, HFP
15:36:26:615 - 15:36:31:603, latency 1988ms, Succeed, SASS_TRIGGERED_CONNECT, SASS switch, A2DP
15:37:56:108 - 15:37:56:250, latency 142ms, Succeed, SWITCH_ACTIVE_TO_SELF, SASS switch, A2DP"
- GmsCore 无法测量的所有开关(例如用于 HFP 的有效开关)都将是 记录为 0 毫秒的延迟时间
日志模式参考:
已知问题:
以下是 Seeker 导致的已知 bug:
- 游戏音频切换有误。
- 三星手机会将连接状态设为
CONNECTED_A2DP_WITH_AVRCP
(而非CONNECTED_A2DP_ONLY
) 游戏 - 有些游戏(如《糖果传奇》)可能会重放背景音乐并触发 无需用户输入内容即可触发新音频事件。已连接的手机可能会在打开游戏的每部手机上不断切换音频。
- 三星手机会将连接状态设为