音訊切換認證認證指南

認證準備

  1. 準備測試裝置。
    • 您需要 5 部 Android 裝置。
      • 這些裝置必須包含:
        • 至少一部 Android T (13) 和一個 Android S (12)。
        • 至少一部 Samsung 和一支 Pixel。
        • 例如:
          • 1 OnePlus (Android 10)。
          • 3 Samsung (Android 11、12、13)。
          • 1 Pixel (Android 13)。
    • 不啟用音訊自動切換功能的裝置:
      • 任何支援音訊自動切換功能的 iPhone、電腦、藍牙 (BT) 筆記型電腦或 Android 手機。
        • 您可以透過藍牙裝置的詳細資料設定關閉音訊自動切換功能。
      • 除了 5 部測試手機外,多點連線 (MP) 測試案例 2.8 還需要沒有音訊自動切換的裝置。
  2. 使用測試帳戶加入音訊自動切換測試群組,以便在測試手機上顯示偵錯通知。
    • 這也能讓 Google 透過 Google Analytics (分析) 收集測試資料。
  3. 確認所有 Android 裝置都已安裝 GmsCore 23.xx.xx 以上版本。

認證條件

  • 所有測試案例中的目標切換成功率皆須超過 95%。
  • 在需要切換項目的測試中,在至少 75% 的情況下觸發音訊事件後,設定檔連線和切換啟用狀態必須在 3 秒內完成。

測試指南

測試中的裝置 (DUT) 準備

  • 確認 BT 裝置之前尚未與任何已登入測試 Google 帳戶的手機配對。
    • 如果裝置已與測試 Google 帳戶配對,請按照下列步驟清除配對:
      • 在配對的裝置上:
        • 前往藍牙設定。
        • 選擇「取消配對裝置」。
        • 開啟飛航模式再關閉。
    • 確認「自動儲存裝置」已開啟。
      • 這個開關預設為關閉。
      • 您可以在「設定」>「Google」>「裝置」>「已儲存的裝置」(每個 DUT 各一個) 中找到這個選項。
    • 讓藍牙裝置進入配對模式。
    • 配對初始藍牙裝置 (A)。
    • 將後續的藍牙裝置與其他裝置 (B、C、D 等) 配對。

範圍

  • 所有耳機都會在音訊自動切換自行測試範本中的各個分頁中執行測試。
  • 僅支援 SinglePoint (SP) 模式的耳機執行下列指令:
    • Generic_test 分頁。
  • 支援 MP 模式的耳機執行下列指令:
    • Generic_test 分頁。
    • 「多點連線」分頁。
  • 可切換為 SP 模式的 MP 頭戴式裝置,執行以下操作:
    • 「Generic_test」(一般測試) 分頁,關閉了 MP。
    • 已開啟 MP 的「Generic_test」分頁。
    • 已開啟 MP 的多點連線分頁。

完成自我測試和自我測試報告

  • 執行所有測試案例至少兩次。
  • 測試應以下列格式執行:
  1. 裝置 A=Android S (12) + 裝置 B=Android T (13)
  2. 裝置 A=Android T (13) + 裝置 B=Android S (12)
  3. 裝置 B 將是主要 DUT。
    • 在「template」頂端的「Phone」和「OS」欄位中輸入裝置 B 的詳細資料。

測試案例範例:

  • 測試手機:

    • 裝置 1:Samsung (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 種類型,以及建議的測試應用程式:
    1. 請撥打:
      1. 內建的手機應用程式。
    2. VoIP:所有 VoIP 應用程式都能正常運作,例如:
      1. 音訊自動切換測試應用程式。
      2. FB Messenger。
      3. Line。
      4. WhatsApp。
      5. Google Meet
      6. Google Meet
    3. 媒體:任何音訊播放器都能使用,例如:
      1. 音訊自動切換測試應用程式。
      2. YouTube Music。
      3. Apple Music。
      4. Spotify
      5. Google 播客等開放原始碼功能中。
    4. 遊戲:
      1. 音訊自動切換測試應用程式。

偵錯資訊:

  • 加入 fp-sass-partner-test 群組之後,系統會啟用通知。例如:

    1. 最新狀態通知: 圖 1:顯示「最新狀態通知」訊息。

    2. 沒有切換通知: 圖 2:顯示「無切換通知」訊息。

  1. 切換延遲通知: 圖 3:顯示「切換延遲時間通知」訊息。

延遲時間測量

  • 切換延遲時間有兩種:
    1. 將藍牙設定檔連線至已中斷連線的探索工具。
      • 這包括所有 SinglePoint 案例,以及部分目標探索工具 (裝置 B) 中斷連線的 MP 案例。
    2. 切換使用連線的探索工具。
      • 這包括部分已連線目標探索工具 (裝置 B) 的 MP 案例。
  • 您可以透過以下兩種方式擷取延遲時間資訊:
    1. 所有延遲時間都可以由 ADB 指令轉儲。
      • 詳情請參閱轉儲延遲一節。
      • 在完成至少一個測試案例後,這個指令可以提供並記錄延遲時間。
    2. 使用音訊自動切換測試應用程式
      • 在目標探索工具上執行的應用程式,會在切換後顯示延遲時間。
      • 如果沒有切換按鈕,應用程式會顯示「不切換」的原因。

音訊自動切換測試應用程式:

  • 在自我測試期間使用應用程式觸發 VoIP/媒體/遊戲音訊事件,可簡化測試設定,並縮短 Seeker 的事件延遲時間。
  • 應用程式安裝:
    • 將 APK 複製到測試手機,然後開啟。
    • 或者,您也可以使用 adb install audio_test_app.apk
  • 如果看到要求存取通知存取權的對話方塊:
    1. 按一下「確定」。
    2. 在應用程式清單中選擇 [FP SASS 測試]
    3. 請授予通知存取權。

應用程式總覽:

這張圖片是應用程式正在執行的

目標供應商
按下這個按鈕,畫面上就會顯示已配對的藍牙裝置清單。請選取要測試的項目。
「連線」和「中斷連線」按鈕的運作方式,與藍牙設定裝置詳細資料中的按鈕相同。
目前狀態
這個欄位會顯示探索工具透過 BLE 廣告或事件串流的提供者上次接收到的連線狀態。
音訊自動切換偵錯通知也會顯示在這裡。
搜尋者類型
這個選項可用來在裝置之間切換音訊串流。
音訊類型
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 的音訊。音訊使用類型為:USAGE_GAME
  • 供應商連線狀態應在 5 秒內切換為 CONNECTED_A2DP_ONLY
「播放」和「停止」按鈕
「播放」和「停止」按鈕會開始或停止播放音訊。
切換結果

這個欄位顯示 Connect 和 Switch 的活動延遲時間。如果音訊事件已觸發,但切換沒有發生,按鈕也會顯示拒絕切換的原因。

  • 延遲時間的測量單位為毫秒 (ms)。
  • 一般而言,延遲時間會從音訊自動切換觸發條件開始,到收到已連線的 BT 設定檔或通知多點切換事件為止。
  • 供應商觸發的開關會測量音訊開始後的延遲時間。

傾印延遲時間

  • 使用者可在執行手動測試時,使用下列指令擷取延遲測量結果: adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService
    • 延遲時間測量結果會顯示在 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. 遊戲音訊自動切換不正確。
    • 玩遊戲時,Samsung 手機會將連線狀態設為 CONNECTED_A2DP_WITH_AVRCP,而非 CONNECTED_A2DP_ONLY
    • 部分遊戲(例如《糖果傳奇》) 可能會重播背景音樂,並在使用者未輸入內容的情況下觸發新的音訊事件。連接的手機可能會在所有開啟遊戲的手機上不斷切換音訊。