認定資格の準備
- テストデバイスを準備します。
- 5 台の Android デバイスが必要です。
- 対象となるデバイスは以下のとおりです。
- 少なくとも 1 つの Android T(13)と 1 つの Android S(12)。
- 少なくとも 1 台の Samsung と 1 台の Google Pixel。
- 例:
- 1 OnePlus(Android 10)。
- 3 Samsung(Android 11、12、13)。
- 1 Google Pixel(Android 13)。
- 対象となるデバイスは以下のとおりです。
- 1 台のデバイス(音声の切り替えなし):
- 音声の切り替えが無効になっている iPhone、PC、Bluetooth(BT)対応のノートパソコン、Android スマートフォン。
- 音声の切り替えは Bluetooth デバイスの詳細設定でオフにできます。
- マルチポイント(MP)テストケース 2.8 には、5 台のテスト用のスマートフォンに加えて、音声の切り替えのないデバイスが必要です。
- 音声の切り替えが無効になっている iPhone、PC、Bluetooth(BT)対応のノートパソコン、Android スマートフォン。
- 5 台の Android デバイスが必要です。
- テスト用のスマートフォンでデバッグ通知を表示するには、テスト アカウントで音声の切り替えテストグループに参加します。
- これにより、Google は Google アナリティクスを通じてテストデータを収集することもできます。
- すべての Android デバイスに GmsCore バージョン
23.xx.xx
以降がインストールされていることを確認します。
認定基準
- ターゲット切り替えの成功率は、すべてのテストケースで 95% を超える必要があります。
- スイッチが必要なテストでは、少なくとも 75% のケースで、プロファイルの接続とスイッチのアクティブ状態は、オーディオ イベントをトリガーしてから 3 秒以内に完了する必要があります。
テストガイド
テスト対象デバイス(DUT)の準備
- BT デバイスが、テスト用の Google アカウントにログインしているスマートフォンと以前にペア設定されていないことを確認します。
- デバイスがテスト用の Google アカウントとペア設定されている場合は、次の手順でペア設定を解除します。
- ペア設定したデバイスで次の操作を行います。
- Bluetooth の設定に移動します。
- [このデバイスとのペア設定を解除] を選択します。
- 機内モードのオンとオフを切り替えます。
- ペア設定したデバイスで次の操作を行います。
- [デバイスを自動保存] がオンになっていることを確認します。
- このスイッチはデフォルトでオフになっています。
- このオプションは、[設定] > [Google] > [デバイス] > [保存済みデバイス](DUT ごとに 1 つ)にあります。
- Bluetooth デバイスをペア設定モードにします。
- 最初の Bluetooth デバイス(A)をペア設定します。
- 後続する Bluetooth デバイスを他のデバイス(B、C、D など)とペア設定します。
- デバイスがテスト用の Google アカウントとペア設定されている場合は、次の手順でペア設定を解除します。
範囲
- すべてのヘッドセットで、オーディオ スイッチ セルフテスト テンプレートのさまざまなタブからテストが実行されます。
- シングルポイント(SP)モードのみをサポートするヘッドセットは、以下の動作を実現します。
- [Generic_test] タブ。
- MP モードをサポートするヘッドセットは、以下の要件を満たす必要があります。
- [Generic_test] タブ。
- [マルチポイントのみ] タブ。
- SP モードに切り替えられる MP ヘッドセットは、以下の要件を満たす必要があります。
- MP がオフになっている [Generic_test] タブ。
- MP がオンになっている [Generic_test] タブ。
- MP がオンになっている [Multipoint_only] タブ。
セルフレストとセルフテストのレポートを完了する
- すべてのテストケースを少なくとも 2 回実行します。
- テストは次の形式で実行する必要があります。
- デバイス A=Android S(12)+ デバイス B=Android T(13)
- デバイス A=Android T(13)+ デバイス B=Android S(12)
- デバイス B がメインの DUT になります。
- テンプレートの上部にある [Phone] フィールドと [OS] フィールドにデバイス B の詳細を入力します。
テストケースの例:
テスト用のスマートフォン:
- デバイス 1: Samsung(Android 13)
- デバイス 2: Google Pixel(Android 12 または 13)など。
実行されたテスト:
- 実行 1. デバイス A=Samsung S10+(12)、デバイス B=Google Pixel 7 Pro(13) 列 D: スマートフォン=Google Pixel 7 pro、OS=Android 13
- 実行 2. デバイス A=Google Pixel 7 Pro(13)、デバイス B=Google Pixel 6(12)列 E: スマートフォン=Google Pixel 6、OS=Android 12
セルフテスト テンプレートの完了したテストの例:
オーディオ イベント:
- テスト済みの 4 種類のオーディオ イベントと推奨されるテストアプリは次のとおりです。
- 次のように呼び出します。
- 内蔵の電話アプリ。
- VoIP: 次のような VoIP アプリが機能します。
- 音声の切り替えテストアプリ
- Facebook メッセンジャー。
- 行。
- WhatsApp。
- Google Meet。
- Google Meet。
- メディア: 次のようなオーディオ プレーヤーを使用できます。
- 音声の切り替えテストアプリ
- YouTube Music。
- Apple Music。
- Spotify:
- Google Podcasts)に表示されないようにする
- ゲーム:
- 音声の切り替えテストアプリ
- 次のように呼び出します。
デバッグ情報:
通知は、fp-sass-partner-test グループに参加すると有効になります。以下に例を挙げます。
最新状態の通知:
切り替え通知はありません:
- スイッチ レイテンシ通知:
レイテンシ測定
- 切り替えのレイテンシには次の 2 種類があります。
- 切断されたシーカーに Bluetooth プロファイルを接続する。
- これには、すべての SinglePoint ケースと、ターゲット シーカー(デバイス B)が切断された一部の MP ケースが含まれます。
- 接続されているアクティブなシーカーを切り替えます。
- これには、ターゲット シーカー(デバイス B)がすでに接続されている MP ケースも含まれます。
- 切断されたシーカーに Bluetooth プロファイルを接続する。
- レイテンシ情報を取得するには、次の 2 つの方法があります。
- すべてのレイテンシは adb コマンドでダンプできます。
- 詳細については、ダンプのレイテンシのセクションをご覧ください。
- このコマンドは、少なくとも 1 つのテストケースを終了した後にレイテンシを提供して記録できます。
- 音声の切り替えテストアプリを使用する。
- ターゲット シーカーで実行されているアプリに、切り替え後のレイテンシが表示されます。
- 切り替えがない場合は、「切り替えなし」の理由が表示されます。
- すべてのレイテンシは adb コマンドでダンプできます。
音声の切り替えテストアプリ:
- セルフテスト中にアプリを使用して VoIP/メディア/ゲームの音声イベントをトリガーすると、テストのセットアップが簡素化され、シーカーのイベント レイテンシが短縮されます。
- バージョン 1.03 はこちらからダウンロードできます。
- アプリのインストール:
- apk をテスト用スマートフォンにコピーして開きます。
- または、
adb install audio_test_app.apk
を使用します。
- 通知へのアクセスを求めるダイアログが表示された場合:
- [OK] をクリックします。
- アプリリストから [FP SASS test] を選択する
- 通知へのアクセスを許可します。
アプリの概要:
- ターゲット プロバイダ
- このボタンをクリックすると、ペア設定された Bluetooth デバイスのリストが表示されます。テストするプロパティを選択します。
- [接続] ボタンと [接続解除] ボタンは、Bluetooth 設定のデバイスの詳細にあるボタンと同様に機能します。
- 現在の状態
- このフィールドには、シーカーが 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
に切り替わる場合があります。
- プロバイダの接続状態は 5 秒以内に
- ゲーム
このモードを選択すると、AVRCP に対応していない音声が再生されます。オーディオの使用タイプは
USAGE_GAME
です。- プロバイダの接続状態は 5 秒以内に
CONNECTED_A2DP_ONLY
に切り替わります。
- プロバイダの接続状態は 5 秒以内に
- 再生ボタンと停止ボタン
- [再生] ボタンと [停止] ボタンで音声を開始または停止できます。
- 切り替えの結果
このフィールドには、接続と切り替えのアクティブ レイテンシが表示されます。また、音声イベントがトリガーされたものの、切り替えが行われなかった場合に、切り替えを拒否した理由も表示されます。
- 待ち時間はミリ秒(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 ミリ秒のレイテンシとして記録されます。
ログパターンのリファレンス:
既知の問題:
シーカーに起因する既知のバグは次のとおりです。
- ゲームの音声の切り替えが正しくない。
- Samsung スマートフォンは、ゲームのプレイ時に接続状態を
CONNECTED_A2DP_ONLY
ではなくCONNECTED_A2DP_WITH_AVRCP
に設定します。 - 一部のゲーム(Candy crush など)では、ユーザー入力なしでバックグラウンド ミュージックが再生され、新しいオーディオ イベントがトリガーされることがあります。接続されたスマートフォンは、ゲームを起動するすべてのスマートフォンで音声を絶えず切り替えることがあります。
- Samsung スマートフォンは、ゲームのプレイ時に接続状態を