デバッグとテスト

Dialer には、統合されたデバッグおよびテスト フレームワークが装備されており、通話対応デバイスを必要とせずに Dialer アプリの機能を検証できます。これにより、Bluetooth や携帯電話サービスに接続された電話が不要になります。このダイヤラ テスト フレームワーク (DTF) は、次のプロセスを簡素化します。

  • アイデアを迅速に検証するために実際のデバイスをセットアップするには、通常、時間がかかります。
  • マルチコール機能をテストするには、少なくとも 3 台の SIM カードを搭載した電話機が必要で、そのうちの 2 台は通話のみに使用されます。
  • Dialer とその依存関係をデバッグします。

Dialer の機能は、テレコム、テレフォニー、Bluetooth Hands Free Profile (HFP) などのいくつかのテクノロジー スタックに依存しているため、これらの依存関係で発生するバグや問題によって Dialer が不安定になる可能性があります。 DTF により、Dialer はこれらの依存関係から独立して実行できるようになります。

特徴

DTF は次の機能を提供します。

  • 通話の配置。 Android Debug Bridge (adb)ブロードキャストを使用して、端末経由で通話対応デバイスを必要とせずに通話を発信および受信します。
  • 模擬電話。通話機能が模擬されています。これには、保留、ミュート、結合、切断が含まれます。

DTFを使用する

注: DTF は Android 11 以降でのみ使用できます。

DTF を使用するには:

  1. 次のようにCarDialerAppForTestingビルド バリアントをビルドしてインストールします:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    その結果、 CarDialerAppForTesting 、テスト デバイス上の元のダイヤラー アプリを置き換えます。

    CarDialerAppForTesting実際のデバイスでは動作しません。実際のデバイスでテストするには、 CarDialerApp.apkを再インストールします。

コマンド

次の adb コマンドは、Dialer が初めて起動された後にのみ機能し、ブロードキャスト レシーバーを初期化する必要があります。 Dialer を起動した後、偽の Bluetooth デバイスを接続する必要があります。これを行うには、次の (セットアップ) デバイスを接続するコマンドを使用します。

(セットアップ)機器を接続する

Dialer への偽の Bluetooth 接続を確立します。すべての通話関連コマンドにアクセスできるようにするには、最初に呼び出す必要があります。

デバイスを接続するには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"

注:偽の Bluetooth デバイスが接続された後でのみ、次の各コマンドを使用できます。

発信電話をかける

発信電話をかけるには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"

着信を受ける

着信を受けるには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"

通話を終了する

通話を終了するには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"

現在の通話を保留します

現在の通話を保留にするには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"

現在の通話の保留を解除する

現在の通話の保留を解除するには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

呼び出しをマージする

プライマリ コールとセカンダリ コールを電話会議に結合します。このコマンドは、プライマリ コールとセカンダリ コールの両方が存在する場合にのみ機能します。既存の電話会議は 1 つのエンティティとみなされます。

通話を結合するには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"

すべての通話をクリアする

通話リスト内のすべての通話を削除するには:

adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"

エミュレータのビルド

開発者は、エミュレータで UI の変更をテストしたい場合があります。このような場合、 CarDialerAppEmulatorBuild 、より強力な DTF と比較して、簡素化されたセットアップと制限された機能を提供します。

テストデータ

Dialer が起動されると、Bluetooth エラー ページがバイパスされ、 TelecomActivityのメイン コンテンツが表示されます。連絡先と通話履歴がローカル デバイスに表示されます。開発者は、標準の連絡先アプリを使用して、テスト連絡先を作成したり、 .vcfファイルをインポートしたりできます。

コールモッキング

着信通話を模擬するには、Android エミュレータを使用して Telnet コマンドを送信します。詳細については、 「Android エミュレータでアプリを実行する」および「エミュレータ コンソール コマンドを送信する」を参照してください。

telnet localhost 5554
gsm call xxx-xxx-xxxx

Dialer アプリで電話をかけるか、通話意図をブロードキャストすると、発信通話が開始されます。

adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx