準備取得認證
- 準備測試裝置。
- 您需要 5 部 Android 裝置。
- 這些裝置必須包含:
- 至少一個 Android T (13) 和一個 Android V (15)。
- 至少一支 Samsung 和一支 Pixel 裝置。
- 例如:
- 1 部 OnePlus (Android 10)。
- 3 部 Samsung (Android 11、12、13)。
- 1 部 Pixel (Android 15)。
- 這些裝置必須包含:
- 一台沒有音訊切換功能的裝置:
- 任何 iPhone、電腦、支援藍牙 (BT) 的筆記型電腦,或已停用音訊自動切換功能的 Android 手機。
- 你可以在藍牙裝置的詳細設定中關閉音訊自動切換功能。
- 除了 5 部測試手機外,多點 (MP) 測試案例 2.8 還需要一台沒有音訊自動切換功能的裝置。
- 任何 iPhone、電腦、支援藍牙 (BT) 的筆記型電腦,或已停用音訊自動切換功能的 Android 手機。
- 您需要 5 部 Android 裝置。
使用測試帳戶加入Audio switch 測試群組,即可在測試手機上顯示偵錯通知。
- 這也能讓 Google 透過 Google Analytics 收集測試資料。
Classic 搭配 A2DP+HFP
- 請確認所有 Android 裝置都已安裝 GmsCore
23.xx.xx
以上版本。
BLE 與 LE Audio
- 至少兩部參考手機必須支援 LE Audio。
- 例如,一支支援 LE Audio 的 Samsung 手機和一支 Pixel 手機。
- 請確認所有 Android 裝置都已安裝 GmsCore
24.33.xx
以上版本。
認證標準
- 在所有測試案例中,目標切換成功率必須超過 95%。
在需要切換的測試中,至少在 75% 的情況下,設定檔連線和切換活動狀態必須在觸發音訊事件後的 3 秒內完成。
Classic 搭配 A2DP+HFP
必須以下列組合執行自檢測試:
- 手機 A=Android S (12) + 手機 B=Android T (13)
- 手機 A=Android T (13) + 手機 B=Android S (12)
BLE 與 LE Audio
必須以下列組合執行自檢測試:
- 手機 A:經典藍牙,手機 B:經典藍牙
- 手機 A:LE Audio、手機 B:經典藍牙
- 手機 A:BT Classic,手機 B:LE Audio
如有需要,支援雙 LE Audio 連線的供應商應測試:
- 手機 A:LE Audio、手機 B:LE Audio
測試指南
測試裝置 (DUT) 準備
- 請確認 BT 裝置先前未與任何已登入測試 Google 帳戶的手機配對。
- 如果裝置已與測試 Google 帳戶配對,請按照下列步驟取消配對:
- 在配對的裝置上:
- 前往藍牙設定。
- 選擇「忘記裝置」。
- 開啟飛航模式再關閉。
- 在配對的裝置上:
- 確認「自動儲存裝置」已開啟。
- 這個切換鈕預設為關閉。
- 您可以在「設定」>「Google」>「裝置」>「已儲存的裝置」(每個 DUT 一個) 中找到這個選項。
- 將藍牙裝置設為配對模式。
- 配對初始藍牙裝置 (A)。
- 將後續藍牙裝置與其他裝置配對 (B、C、D 等)。
- 如果裝置已與測試 Google 帳戶配對,請按照下列步驟取消配對:
範圍
- 所有耳機都會透過 BT Classic 或 BT LE Audio 自測報告中的各個分頁執行測試。
- 僅支援 SinglePoint (SP) 模式的耳機會執行以下操作:
- 「Generic_test」分頁。
- 支援 MP 模式的耳機會執行以下操作:
- 「Generic_test」分頁。
- Multipoint_only 分頁。
- 可切換至 SP 模式的 MP 耳機可執行下列操作:
- 關閉 MP 的 Generic_test 分頁。
- 開啟 MP 的 Generic_test 分頁。
- 開啟多點連線功能的「Multipoint_only」分頁。
完成自我休息和自我測試報告
- 複製 BT Classic 或 BT LE Audio 自檢測報告。
- 至少執行所有測試案例兩次。
測試應以以下形式執行:
Classic 搭配 A2DP+HFP
- 裝置 B 將是主要 DUT。
- 在範本頂端的「Phone」和「OS」欄位中輸入裝置 B 的詳細資料。
測試案例範例:
測試手機:
- 裝置 1:Samsung (Android 13)
- 裝置 2:Pixel (Android 12 或 13) 和其他裝置。
已執行的測試:
- 執行 1. 裝置 A=Samsung S10+ (12)、裝置 B=Pixel 7 Pro (13) 第 D 欄:Phone=Pixel 7 Pro、OS=Android 13
- 執行 2. 裝置 A=Pixel 7 Pro (13)、裝置 B=Pixel 6(12) 第 E 欄:Phone=Pixel 6、OS=Android 12
以下是自測範本中已完成的測試範例:
BLE 與 LE Audio
- 裝置 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。
- 在範本頂端的「Phone」和「OS」欄位中輸入裝置 B 的詳細資料。
測試案例範例:
測試手機:
- 裝置 1:Samsung (Android 13)
- 裝置 2:Pixel (Android 15) 和其他裝置。
已執行的測試:
- [LEA+BT]:裝置 A= Pixel 8 (15)、裝置 B=Pixel 7 Pro (13) 欄 D: Phone=Pixel 7 Pro、OS=Android 13
- [BT+LEA]: 裝置 A=Pixel 7 (13)、裝置 B=Pixel 8 (Android 15) 欄 E: 手機=Pixel 8、OS=Android 15
- [BT+BT]:裝置 A=Pixel 7 Pro (13)、裝置 B=Samsung S10+ (12) 欄 E:手機=Samsung S10+、OS=Android 12
- [LEA+LEA]:裝置 A=Pixel 8 (15)、裝置 B=Pixel 8(15) 欄 E:手機=Pixel 8、OS=Android 15
以下是自測範本中已完成的測試範例:
音訊事件:
測試的 4 種音訊事件和建議測試應用程式如下:
- 電話:
- 內建的電話應用程式。
- VoIP:任何 VoIP 應用程式皆可使用,例如:
- 音訊自動切換測試應用程式。
- FB Messenger。
- Line。
- WhatsApp。
- Google Meet
- Google Meet
- 媒體:任何音訊播放器皆可使用,例如:
- 音訊自動切換測試應用程式。
- YouTube Music。
- Apple Music。
- Spotify。
- Google 播客等開放原始碼功能中。
- 遊戲:
- 音訊自動切換測試應用程式。
- 電話:
偵錯資訊:
加入 fp-sass-partner-test 群組後,系統就會啟用通知。例如:
- 最新狀態通知:
- 沒有切換通知:
- 切換延遲通知:
延遲時間測量
- 切換延遲有兩種:
- 將藍牙設定檔連線至已中斷連線的 Seeker。
- 這包括所有 SinglePoint 案例,以及部分目標 Seeker (裝置 B) 已中斷連線的 MP 案例。
- 切換已連結的 Seeker。
- 這包括部分 MP 案例,其中目標 Seeker (裝置 B) 已連線。
- 將藍牙設定檔連線至已中斷連線的 Seeker。
- 擷取延遲時間資訊的方式有兩種:
- 所有延遲時間都可以透過 ADB 指令轉儲。
- 詳情請參閱「傾印延遲」一節。
- 這項指令可在完成至少一個測試案例後,提供及記錄延遲時間。
- 使用音訊自動切換測試應用程式。
- 在切換後,在目標 Seeker 上執行的應用程式會顯示延遲時間。
- 如果沒有切換按鈕,應用程式會顯示「沒有切換按鈕」的原因。
- 所有延遲時間都可以透過 ADB 指令轉儲。
音訊自動切換測試應用程式:
- 在自測期間使用應用程式觸發 VoIP/媒體/遊戲音訊事件,可簡化測試設定並縮短 Seeker 的事件延遲時間。
- 您可以在此下載最新版本。
- 如要進行 LE Audio VoIP 測試,您必須手動啟用政策: > adb root > adb shell settings put global hidden_api_policy 1 > adb reboot
- 應用程式安裝:
- 將 APK 複製到測試手機並開啟。
- 或者,您也可以使用
adb install audio_test_app.apk
。
- 如果系統顯示要求通知存取權的對話方塊,請按照下列步驟操作:
- 按一下「確定」
- 在應用程式清單中選擇「FP SASS 測試」
- 授予通知存取權。
應用程式總覽:
目標供應商
- 點選這個按鈕後,系統會顯示已配對的藍牙裝置清單。選取要測試的項目。
- 「Connect」和「Disconnect」按鈕的運作方式與藍牙設定的裝置詳細資料中的按鈕相同。
目前狀態
- 這個欄位會顯示 Seeker 使用 BLE 廣告或事件串流,從提供者收到的最後連線狀態。
- 音訊切換偵錯通知也會顯示在這裡。
尋求者類型
- 這個選項可用於在音訊串流之間切換裝置。
音訊類型
Classic 搭配 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
。 - 供應器連線狀態應在 5 秒內切換為
CONNECTED_A2DP_ONLY
。
- 選取這個模式會播放不支援 AVRCP 的音訊。音訊用途類型:
BLE 與 LE Audio
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
。
- 選取這個模式會播放使用者無法直接控制的音訊。音訊用途類型:
播放和停止按鈕
- 「播放」和「停止」按鈕可開始或停止音訊。
切換結果
- 這個欄位會顯示 Connect 和 Switch 的實際延遲時間。如果系統觸發音訊事件但未切換,也會顯示拒絕切換的原因。
- 延遲時間的測量單位為毫秒 (ms)。
- 一般來說,延遲時間是從音訊切換觸發事件開始,到接收 BT 設定檔連線或通知多點切換事件的時間。
- 由供應商觸發的切換會從音訊開始時測量延遲時間。
傾印延遲時間
- 下列指令可讓使用者在執行手動測試時擷取延遲時間測量值:
adb shell dumpsys activity service com.google.android.gms/.nearby.discovery.service.DiscoveryService
- 延遲時間衡量指標會顯示在
NearbyDeviceManager
'sSwitchHistory
專區下方:
- 延遲時間衡量指標會顯示在
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 造成的已知錯誤:
- 遊戲音訊切換不正確。
- 在玩遊戲時,Samsung 手機會將連線狀態設為
CONNECTED_A2DP_WITH_AVRCP
,而非CONNECTED_A2DP_ONLY
。 - 部分遊戲 (例如 Candy Crush) 可能會在沒有使用者輸入的情況下重播背景音樂,並觸發新的音訊事件。連結的手機可能會在每部開啟遊戲的手機上不斷切換音訊。
- 在玩遊戲時,Samsung 手機會將連線狀態設為