音频切换认证准则

认证准备

  1. 准备测试设备。
    • 您将需要 5 部 Android 设备。
      • 这些设备必须包括: <ph type="x-smartling-placeholder">
          </ph>
        • 至少一个 Android T (13) 和一个 Android S (12)。
        • 至少有一部三星手机和一个 Pixel 手机。
        • 例如:
          • 1 一加 (Android 10)。
          • 3 Samsung(Android 11、12、13)。
          • 1 部 Pixel (Android 13)。
    • 一台不支持音频切换功能的设备: <ph type="x-smartling-placeholder">
        </ph>
      • 任何 iPhone、PC、支持蓝牙 (BT) 的笔记本电脑或 Android 手机 已停用“音频切换”功能
        • 您可以通过蓝牙设备详情关闭音频切换功能 设置。
      • 多点 (MP) 测试用例 2.8 需要一部未启用音频切换功能的设备 除了 5 部测试手机之外,
  2. 使用您的测试账号加入音频切换测试组 以便在测试手机上显示调试通知。
    • 这也使得 Google 能够通过 Google Analytics 收集测试数据。
  3. 确保所有 Android 设备都有 GmsCore 版本 23.xx.xx 或更高版本 已安装。

认证标准

  • 在所有测试用例中,目标切换成功率都必须超过 95%。
  • 在需要开关的测试中,配置文件连接并切换活动状态 必须在至少 75% 的触发音频事件后的 3 秒内完成 案例

测试指南

被测设备 (DUT) 准备

  • 验证 BT 设备之前是否未与任何手机配对 登录到测试 Google 账号。
    • 如果设备已与测试 Google 账号配对,请执行以下操作: 以清除配对: <ph type="x-smartling-placeholder">
        </ph>
      • 在已配对的设备上: <ph type="x-smartling-placeholder">
          </ph>
        • 前往“蓝牙”设置。
        • 选择“取消保存设备”。
        • 开启和关闭飞行模式。
    • 确保“自动保存设备”处于“开启”状态。
      • 此开关默认处于关闭状态。
      • 您可以在“设置 >”中找到此选项。Google >设备 >已保存 设备(每个 DUT 一个)。
    • 将蓝牙设备设为配对模式。
    • 与初始蓝牙设备 (A) 配对。
    • 将后续的蓝牙设备与其他设备(B、C、D 等)配对。

范围

  • 所有耳机都会从 音频切换自测模板
  • 仅支持单点 (SP) 模式的耳机会运行以下代码: <ph type="x-smartling-placeholder">
      </ph>
    • 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 标签页。

完成自我休息和自测报告

  • 运行所有测试用例至少两次。
  • 测试应按以下形式执行:
  1. 设备 A=Android S (12) + 设备 B=Android T (13)
  2. 设备 A=Android T (13) + 设备 B=Android S (12)
  3. 设备 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,OS=Android 13
    • 运行 2.设备 A=Pixel 7 Pro (13),设备 B=Pixel 6(12) E 列:手机=Pixel 6,OS=Android 12

以下是自测模板中已完成测试的示例:

此图片显示了示例测试的结果

音频事件:

  • 测试的音频事件有 4 种类型,推荐的测试应用分别是: <ph type="x-smartling-placeholder">
      </ph>
    1. 致电: <ph type="x-smartling-placeholder">
        </ph>
      1. 内置的手机应用。
    2. VoIP:任何 VoIP 应用都可以运行,例如: <ph type="x-smartling-placeholder">
        </ph>
      1. 音频切换测试应用。
      2. FB Messenger。
      3. Line。
      4. WhatsApp。
      5. Google Meet。
      6. Google Meet。
    3. 媒体:您可以使用任意音频播放器,例如: <ph type="x-smartling-placeholder">
        </ph>
      1. 音频切换测试应用。
      2. YouTube Music。
      3. Apple Music。
      4. Spotify。
      5. Google 播客。
    4. 游戏: <ph type="x-smartling-placeholder">
        </ph>
      1. 音频切换测试应用。

调试信息:

  • 加入 fp-sass-partner-test 组。下面是一些示例:

    1. 最新状态通知: 图 1:显示“最新状态通知”消息。

    2. 无切换通知: 图 2:显示“无切换通知”消息。

  1. 切换延迟时间通知: 图 3:显示“切换延迟通知”消息。

延迟时间测量

  • 切换延迟时间分为两类: <ph type="x-smartling-placeholder">
      </ph>
    1. 将蓝牙配置文件连接到已断开连接的 Seeker。
      • 这包括所有 SinglePoint 案例,以及一些目标 搜寻器(设备 B)已断开连接。
    2. 正在切换已连接的探索器。
      • 这包括目标追逐者(设备 B)的一些 MP 用例 已连接。
  • 您可以通过以下两种方式检索延迟时间信息: <ph type="x-smartling-placeholder">
      </ph>
    1. 所有延迟时间都可以通过 adb 命令转储。
      • 如需了解详情,请参阅转储延迟时间部分。
      • 此命令至少在完成后提供并记录延迟时间 一个测试用例。
    2. 使用音频切换测试应用。 <ph type="x-smartling-placeholder">
        </ph>
      • 在目标 Seeker 上运行的应用会在以下时间后显示延迟时间: 切换。
      • 如果没有开关,应用将显示“无开关”原因。

音频切换测试应用:

  • 在自测期间使用应用触发 VoIP/媒体/游戏音频事件 简化测试设置并缩短 Seeker 的事件延迟时间。
  • 应用安装: <ph type="x-smartling-placeholder">
      </ph>
    • 将 APK 复制到测试手机并打开。
    • 或者,您也可以使用 adb install audio_test_app.apk
  • 如果您看到一个要求访问通知的对话框,请执行以下操作: <ph type="x-smartling-placeholder">
      </ph>
    1. 点击“确定”
    2. 选择“FP SASS 测试”在应用列表中
    3. 授予通知使用权。

应用概览:

此图展示了该应用在 Google Cloud 上

目标提供商
点击此按钮后,系统会显示已配对蓝牙设备的列表。选择 您要测试的 Pod
“连接”和“断开连接”按钮的作用与蓝牙中的按钮类似 设置设备详细信息。
当前状态
此字段显示探索者上次从提供商收到的连接状态 使用 BLE 广播或事件流。
此处还显示了音频切换调试通知。
追逐者类型
此选项用于在设备音频流之间切换。
音频类型
VoIP 如果选择此模式,音频模式会更改为 AudioManager.MODE_IN_COMMUNICATION并拨打电话 AudioManager.startBluetoothSco,然后通过以下方式播放音频: USAGE_VOICE_COMMUNICATION
  • 流类型为 STREAM_VOICE_CALL
  • 提供程序连接状态应在 5 天内切换为 CONNECTED_HFP
媒体 如果选择此模式,系统会播放支持 AVRCP 的音频。音频使用类型 为:USAGE_MEDIA
  • 提供程序连接状态应切换为 CONNECTED_A2DP_WITH_AVRCP
  • 启动时,连接状态可能会短暂切换为 CONNECTED_A2DP_ONLY 或停止运行。
游戏 如果选择此模式,系统会播放不支持 AVRCP 的音频。音频使用情况 类型为:USAGE_GAME
  • 提供程序连接状态应在 5 天内切换为 CONNECTED_A2DP_ONLY
“播放”和“停止”按钮
使用“播放”和“停止”按钮可启动或停止音频。
切换结果

此字段显示连接和切换活动延迟时间。它还显示 如果触发了某个音频事件,但相应切换按钮被触发,则拒绝切换的原因 并没有发生过。

  • 延迟时间以毫秒 (ms) 为单位。
  • 一般来说,延迟时间是从“音频切换”触发器开始到 收到已连接的 BT 配置文件或通知多点切换事件。
  • 由提供程序触发的开关会测量从音频启动开始的延迟时间。

转储延迟时间

  • 以下命令允许用户捕获延迟时间测量值, 运行手动测试: adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService <ph type="x-smartling-placeholder">
      </ph>
    • 延迟时间测量值显示在 NearbyDeviceManagerSwitchHistory 下 部分:
            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 毫秒的延迟时间

日志模式参考:

延迟时间测试的日志示例

已知问题:

以下是搜寻者导致的已知错误:

  1. 游戏音频切换有误。
    • 三星手机会将连接状态设为 CONNECTED_A2DP_WITH_AVRCP(而非 CONNECTED_A2DP_ONLY) 游戏
    • 有些游戏(如《糖果传奇》)可能会重放背景音乐并触发新的 音频事件。已连接的手机可能会不断切换 打开游戏