オーディオ スイッチの認定ガイドライン

認定資格取得の準備

  • テストデバイスを準備します。
    • 5 台の Android デバイスが必要です。
      • これらのデバイスには、以下が含まれている必要があります。
        • Android T(13)と Android V(15)を 1 つずつ以上。
        • Samsung と Google 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 アナリティクスを通じてテストデータを収集することもできます。

A2DP+HFP の従来型

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

BLE(LE Audio 対応)

  • 少なくとも 2 台のリファレンス スマートフォンが LE Audio をサポートしている必要があります。
    • たとえば、LE Audio に対応した Samsung 製スマートフォンと Google Pixel を 1 台ずつ使用します。
  • すべての Android デバイスに GmsCore バージョン 24.33.xx 以降がインストールされていることを確認します。

認定基準

  • ターゲット切り替えの成功率は、すべてのテストケースで 95% を超える必要があります。
  • 切り替えを必要とするテストでは、少なくとも 75% のケースで、オーディオ イベントのトリガー後 3 秒以内にプロファイルの接続と切り替えのアクティブ状態が完了する必要があります。

A2DP+HFP の従来型

セルフテストは、次の組み合わせで実施する必要があります。

  • スマートフォン A=Android S(12)+ スマートフォン B=Android T(13)
  • スマートフォン A=Android T(13)+ スマートフォン B=Android S(12)

BLE(LE Audio 対応)

セルフテストは、次の組み合わせで実施する必要があります。

  • スマートフォン A: BT クラシック、スマートフォン B: BT クラシック
  • スマートフォン 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] タブ。
    • MP がオンになっている [Multipoint_only] タブ。

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

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

A2DP+HFP の従来型

  • デバイス B がメインの DUT になります。
    • テンプレートの上部にある [スマートフォン] フィールドと [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

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

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

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

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

  • アプリを使用してセルフテスト中に 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 アドバタイズまたはイベント ストリームを使用してプロバイダから受け取った最後の接続状態が表示されます。
    • 音声スイッチのデバッグ通知もここに表示されます。
  • 求職者のタイプ

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

音声の種類

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 に切り替わります。
  • 再生ボタンと停止ボタン

    • 再生ボタンと停止ボタンは、音声の開始と停止に使用します。
  • スイッチの結果

    • このフィールドには、接続と切り替えのアクティブなレイテンシが表示されます。また、オーディオ イベントがトリガーされたものの、切り替えが行われなかった場合、切り替えが拒否された理由も表示されます。
    • 待ち時間はミリ秒(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 ms のレイテンシとして記録されます。

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

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

既知の問題:

シーカーが原因で発生する既知のバグは次のとおりです。

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