音声切り替え認定ガイドライン

認定資格取得の準備

  • テストデバイスを準備します。
    • Android デバイスが 5 台必要です。
      • これらのデバイスには、以下を含める必要があります。
        • Android T(13)と Android V(15)を 1 つ以上。
        • Samsung と Pixel をそれぞれ 1 台以上。
        • 例:
          • 1 OnePlus(Android 10)。
          • 3 Samsung(Android 11、12、13)。
          • 1 台の Google Pixel(Android 15)。
    • 音声の切り替えのないデバイス 1 台:
      • iPhone、PC、Bluetooth(BT)対応のノートパソコン、または音声の切り替えが無効になっている Android スマートフォン。
        • [音声の切り替え] は、Bluetooth デバイスの詳細設定でオフにできます。
      • マルチポイント(MP)テストケース 2.8 では、5 台のテスト用スマートフォンの他に、音声の切り替え機能のないデバイスが必要です。
  • テスト用スマートフォンにデバッグ通知を表示するには、テスト アカウントを使用して音声の切り替えテストグループに参加します。

    • また、Google アナリティクスを通じてテストデータを収集することも可能になります。

Classic(A2DP+HFP)

  • すべての Android デバイスに GmsCore バージョン 23.xx.xx 以降がインストールされていることを確認します。

BLE と LE Audio

  • リファレンス スマートフォンのうち少なくとも 2 台が LE Audio をサポートしている必要があります。
    • たとえば、LE Audio に対応している Samsung スマートフォン 1 台と Google Pixel 1 台などです。
  • すべての 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: BT Classic、スマートフォン B: BT Classic
  • スマートフォン A: LE Audio、スマートフォン B: BT Classic
  • スマートフォン A: BT Classic、スマートフォン B: LE Audio

必要に応じて、デュアル LE Audio 接続をサポートするプロバイダは、以下をテストする必要があります。

  • スマートフォン A: LE Audio、スマートフォン B: LE Audio

テストガイド

テスト対象デバイス(DUT)の準備

  • BT デバイスが、テスト用 Google アカウントにログインしているスマートフォンと以前にペア設定されていないことを確認します。
    • デバイスがテスト用の Google アカウントとペア設定されている場合は、次の手順でペア設定を解除します。
      • ペア設定済みのデバイスで、以下の操作を行います。
        • Bluetooth の設定に移動します。
        • [デバイスを削除] を選択します。
        • 機内モードをオンにしてオフにします。
    • [デバイスの自動保存] がオンになっていることを確認します。
      • このスイッチはデフォルトでオフになっています。
      • このオプションは、[設定] > [Google] > [デバイス] > [保存済みデバイス](DUT ごとに 1 つ)にあります。
    • Bluetooth デバイスをペア設定モードにします。
    • 最初の Bluetooth デバイス(A)をペア設定します。
    • 以降の Bluetooth デバイスを他のデバイス(B、C、D など)とペア設定します。

スコープ

  • すべてのヘッドセットは、BT Classic または BT LE Audio のセルフテスト レポートのさまざまなタブからテストを実行します。
  • SinglePoint(SP)モードのみをサポートするヘッドセットは、以下を実行します。
    • [Generic_test] タブ。
  • MP モードをサポートするヘッドセットは、以下を実行します。
    • [Generic_test] タブ。
    • [Multipoint_only] タブ。
  • SP モードに切り替え可能な MP ヘッドセットは、以下を実行します。
    • MP がオフになっている [Generic_test] タブ。
    • MP がオンになっている [Generic_test] タブ。
    • [Multipoint_only] タブで MP がオンになっている状態。

セルフレストとセルフテスト レポートの完了

  • BT Classic または BT LE Audio のセルフテスト レポートのコピーを作成します。
  • すべてのテストケースを少なくとも 2 回実行します。
  • テストは次の形式で実行する必要があります。

Classic(A2DP+HFP)

  • デバイス B がメインの DUT になります。
    • テンプレートの上部にある [Phone](電話)フィールドと [OS](OS)フィールドに、デバイス B の詳細を入力します。

テストケースの例:

  • テスト用スマートフォン:

    • デバイス 1: Samsung(Android 13)
    • デバイス 2: Google Pixel(Android 12 または 13)など。
  • 実行されたテスト:

    • 実行 1。デバイス A=Samsung S10+(12)、デバイス B=Google Pixel 7 Pro(13) 列 D: Phone=Google Pixel 7 Pro、OS=Android 13
    • Run 2. デバイス A=Google Pixel 7 Pro(13)、デバイス B=Google Pixel 6(12) 列 E: Phone=Google Pixel 6、OS=Android 12

セルフテスト テンプレートのテスト完了の例:

この画像は、テストの例の結果を示しています

BLE と LE Audio

  1. デバイス A=Android V(15)+ デバイス B=Android T(13)
  2. デバイス A=Android T(13)+ デバイス B=Android V(15)
  3. デバイス A=Android T(13)+ デバイス B=Android S(12)
  4. デバイス A=Android T(15)+ デバイス B=Android V(15)
  5. デバイス B がメインの DUT になります。
    • テンプレートの上部にある [Phone](電話)フィールドと [OS](OS)フィールドに、デバイス B の詳細を入力します。

テストケースの例:

  • テスト用スマートフォン:

    • デバイス 1: Samsung(Android 13)
    • デバイス 2: Google Pixel(Android 15)など。
  • 実行されたテスト:

    • [LEA+BT]: デバイス A= Google Pixel 8(15)、デバイス B=Google Pixel 7 Pro(13)、列 D: スマートフォン=Google Pixel 7 Pro、OS=Android 13
    • [BT+LEA]: デバイス A=Google Pixel 7(13)、デバイス B=Google Pixel 8(Android 15)列 E: スマートフォン=Google Pixel 8、OS=Android 15
    • [BT+BT]: デバイス A=Google Pixel 7 Pro(13)、デバイス B=Samsung S10+(12)列 E: スマートフォン=Samsung S10+、OS=Android 12
    • [LEA+LEA]: デバイス A=Google Pixel 8(15)、デバイス B=Google Pixel 8(15)、列 E: スマートフォン=Google Pixel 8、OS=Android 15

セルフテスト テンプレートのテスト完了の例:

この画像は、テストの例の結果を示しています

音声イベント:

  • テスト対象の 4 種類のオーディオ イベントと推奨されるテストアプリは次のとおりです。

    1. 電話:
      1. 組み込みの電話アプリ。
    2. VoIP: 次のような VoIP アプリが動作します。
      1. 音声の切り替えテストアプリ。
      2. FB Messenger。
      3. 行。
      4. WhatsApp。
      5. Google Meet。
      6. Google Meet。
    3. メディア: 次のようなオーディオ プレーヤーを使用します。
      1. 音声の切り替えテストアプリ。
      2. YouTube Music。
      3. Apple Music。
      4. Spotify。
      5. Google Podcasts)に表示されないようにする
    4. ゲーム:
      1. 音声の切り替えテストアプリ。

デバッグ情報:

  • fp-sass-partner-test グループに参加すると、通知が有効になります。次に例を示します。

    • 最新のステータス通知:

    図 1: 「最新の状態通知」メッセージを示しています。

    • スイッチの通知なし:

    図 2: 「切り替え通知なし」のメッセージが表示されています。

    • スイッチのレイテンシ通知:

    図 3: 「スイッチ レイテンシ通知」メッセージを示しています。

レイテンシの測定

  • スイッチのレイテンシには次の 2 種類があります。
    1. 切断された Seeker に Bluetooth プロファイルを接続します。
      • これには、すべての SinglePoint ケースと、ターゲットの Seeker(デバイス B)が切断されている一部の MP ケースが含まれます。
    2. アクティブな接続済み Seeker を切り替えます。
      • これには、ターゲットの Seeker(デバイス B)がすでに接続されている MP ケースも含まれます。
  • レイテンシ情報を取得するには、次の 2 つの方法があります。
    1. すべてのレイテンシは adb コマンドでダンプできます。
      • 詳しくは、ダンプ レイテンシのセクションをご覧ください。
      • このコマンドは、少なくとも 1 つのテストケースを完了した後にレイテンシを取得して記録できます。
    2. 音声の切り替えテストアプリを使用します。
      • ターゲット Seeker で実行されているアプリは、切り替え後にレイテンシを表示します。
      • 切り替えがなかった場合、アプリに「切り替えなし」の理由が表示されます。

音声の切り替えテストアプリ:

  • アプリを使用してセルフテスト中に VoIP/メディア/ゲームの音声イベントをトリガーすると、テストのセットアップが簡素化され、シーカーのイベント レイテンシが短縮されます。
    • 最新バージョンはこちらからダウンロードできます。
    • LE Audio VoIP テストでは、ポリシーを手動で有効にする必要があります。 > adb root > adb shell settings put global hidden_api_policy 1 > adb reboot
  • アプリのインストール:
    • テスト用スマートフォンに APK をコピーして開きます。
    • あるいは、adb install audio_test_app.apk を使用することもできます。
  • 通知へのアクセスを求めるダイアログが表示された場合:
    1. [OK] をクリックします。
    2. アプリ一覧で [FP SASS test] を選択します
    3. 通知へのアクセスを許可します。

アプリの概要:

この画像は、アプリの実行例です。

  • ターゲット プロバイダ

    • このボタンをクリックすると、ペア設定済みの Bluetooth デバイスのリストが表示されます。テストするものを選択します。
    • [接続] ボタンと [切断] ボタンは、Bluetooth 設定のデバイスの詳細にあるボタンと同じように機能します。
  • 現在の状態

    • このフィールドには、BLE アドバタイジングまたはイベント ストリームを使用して Seeker が Provider から受信した最後の接続状態が表示されます。
    • 音声の切り替えのデバッグ通知もここに表示されます。
  • Seeker type

    • このオプションは、デバイスをオーディオ ストリーム間で切り替えるために使用されます。

音声タイプ

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 をサポートしていない音声が再生されます。音声の使用タイプは USAGE_GAME です。
    • プロバイダ接続の状態が 5 秒以内に CONNECTED_A2DP_ONLY に切り替わります。

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 プロファイル接続または Notify マルチポイント切り替えイベントの受信まで測定されます。
    • プロバイダ トリガー スイッチは、音声の開始からのレイテンシを測定します。

ダンプ レイテンシ

  • 次のコマンドを使用すると、手動テストの実行時にレイテンシ測定値をキャプチャできます。 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 ミリ秒として記録されます。

ログパターンのリファレンス:

レイテンシ テストのログの例

既知の問題:

Seeker によって発生する既知のバグは次のとおりです。

  1. ゲーム音声の切り替えが正しくない。
    • Samsung スマートフォンでは、ゲームをプレイしているときに接続状態が CONNECTED_A2DP_ONLY ではなく CONNECTED_A2DP_WITH_AVRCP に設定されます。
    • 一部のゲーム(キャンディ クラッシュなど)では、バックグラウンド ミュージックが再生され、ユーザー入力なしで新しい音声イベントがトリガーされることがあります。接続されたスマートフォンで、ゲームを開くたびに音声が切り替わる可能性があります。