Fehler beheben und testen

Dialer ist mit einem integrierten Debugging- und Test-Framework ausgestattet, mit dem Sie die Funktionen der Dialer-App validieren können, ohne dass anrufbereite Geräte erforderlich sind. Dadurch entfällt die Notwendigkeit von Bluetooth und verbundenen Telefonen mit Mobilfunkdienst. Dieses Dialer Testing Framework (DTF) vereinfacht diese Prozesse:

  • Das Einrichten eines echten Geräts zur schnellen Validierung von Ideen nimmt normalerweise Zeit in Anspruch.
  • Zum Testen der Mehrfachanruffunktionen sind mindestens drei Telefone mit SIM-Karte erforderlich, von denen zwei nur zum Tätigen von Anrufen verwendet werden.
  • Debuggen von Dialer und seinen Abhängigkeiten.

Da die Funktionalität von Dialer von mehreren Technologie-Stacks abhängt, darunter Telekommunikation, Telefonie und Bluetooth Hands Free Profile (HFP), können Fehler und Probleme, die in diesen Abhängigkeiten auftreten, dazu führen, dass Dialer nicht mehr funktioniert. Durch das DTF kann Dialer unabhängig von diesen Abhängigkeiten ausgeführt werden.

Merkmale

Das DTF bietet folgende Funktionen:

  • Anrufvermittlung. Tätigen und empfangen Sie Anrufe, ohne dass ein anrufbereites Gerät erforderlich ist, über das Terminal mit einer Android Debug Bridge (adb) -Übertragung.
  • Scheinanrufe. Die Anruffunktionalität wird verspottet. Dazu gehören Halten, Stummschalten, Zusammenführen und Trennen der Verbindung.

Verwenden Sie das DTF

Hinweis: Das DTF ist nur in Android 11 oder höher verfügbar.

So verwenden Sie das DTF:

  1. Erstellen und installieren Sie die CarDialerAppForTesting Build-Variante wie folgt:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    Dadurch ersetzt CarDialerAppForTesting die ursprüngliche Dialer-App auf dem Testgerät.

    CarDialerAppForTesting funktioniert nicht mit echten Geräten. Um es mit einem echten Gerät zu testen, installieren Sie CarDialerApp.apk neu.

Befehle

Die folgenden ADB-Befehle funktionieren nur, nachdem Dialer zum ersten Mal gestartet wurde und erfordern eine Initialisierung des Rundfunkempfängers. Nach dem Start von Dialer muss ein gefälschtes Bluetooth-Gerät verbunden werden. Verwenden Sie dazu den folgenden Befehl (Setup) „Gerät verbinden“.

(Einrichten) Schließen Sie ein Gerät an

Stellt eine gefälschte Bluetooth-Verbindung zum Dialer her und muss zuerst aufgerufen werden, um den Zugriff auf alle anrufbezogenen Befehle zu ermöglichen.

So schließen Sie ein Gerät an:

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

Hinweis: Jeder der folgenden Befehle kann erst verwendet werden, nachdem ein gefälschtes Bluetooth-Gerät verbunden wurde.

Einen ausgehenden Anruf tätigen

So tätigen Sie einen ausgehenden Anruf:

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

Erhalten Sie einen eingehenden Anruf

So nehmen Sie einen eingehenden Anruf entgegen:

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

Beenden Sie einen Anruf

So beenden Sie einen Anruf:

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

Halten Sie den aktuellen Anruf

So legen Sie den aktuellen Anruf in die Warteschleife:

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

Halten Sie den aktuellen Anruf zurück

So nehmen Sie den aktuellen Anruf aus der Warteschleife:

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

Anrufe zusammenführen

Führen Sie die primären und sekundären Anrufe zu einer Telefonkonferenz zusammen. Dieser Befehl funktioniert nur, wenn sowohl der primäre als auch der sekundäre Aufruf vorhanden sind. Eine bestehende Telefonkonferenz wird als eine einzelne Einheit betrachtet.

So führen Sie Anrufe zusammen:

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

Alle Anrufe löschen

Um alle Anrufe aus der Anrufliste zu entfernen:

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

Emulator-Build

Manchmal möchten Entwickler möglicherweise Änderungen an der Benutzeroberfläche auf einem Emulator testen. In solchen Fällen bietet CarDialerAppEmulatorBuild im Vergleich zum leistungsstärkeren DTF eine vereinfachte Einrichtung und eingeschränkte Funktionalität.

Testdaten

Wenn Dialer gestartet wird, wird die Bluetooth-Fehlerseite umgangen und der Hauptinhalt von TelecomActivity angezeigt. Kontakte und Anrufprotokolle werden auf dem lokalen Gerät angezeigt. Entwickler können die Standard-Kontakte-App verwenden, um Testkontakte zu erstellen oder eine .vcf Datei zu importieren.

Rufen Sie Spott an

Um eingehende Anrufe zu simulieren, verwenden Sie den Android-Emulator, um Telnet-Befehle zu senden. Weitere Informationen finden Sie unter „Apps auf dem Android-Emulator ausführen“ und „Emulator-Konsolenbefehle senden“ .

telnet localhost 5554
gsm call xxx-xxx-xxxx

Wenn Sie in der Dialer-App einen Anruf tätigen oder eine Anrufabsicht übertragen, wird ein ausgehender Anruf gestartet.

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