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:
- 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 SieCarDialerApp.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