Der Dialer ist mit einem integrierten Debugging- und Test-Framework ausgestattet, mit dem Sie die Funktionen der Dialer App validieren können, ohne dass Sie Geräte benötigen, die für Anrufe bereit sind. So sind weder Bluetooth noch verbundene Smartphones mit Mobilfunkdienst erforderlich. Dieses DTF (Dialer Testing Framework) vereinfacht diese Prozesse:
- Die Einrichtung eines echten Geräts, um Ideen schnell zu validieren, nimmt in der Regel Zeit in Anspruch.
- Für den Test von Funktionen für mehrere Anrufe sind mindestens drei Smartphones mit SIM-Karte erforderlich, von denen zwei nur zum Telefonieren verwendet werden.
- Debuggen des Dialers und seiner Abhängigkeiten
Da die Funktionalität des Dialers von mehreren Technologiestacks abhängt, darunter Telekommunikation, Telefonie und Bluetooth-Freisprechprofil (HFP), können Fehler und Probleme, die in diesen Abhängigkeiten auftreten, zu Instabilitäten des Dialers führen. Mit dem DTF kann der Dialer unabhängig von diesen Abhängigkeiten ausgeführt werden.
Funktionen
Die DTF bietet folgende Funktionen:
- Anruf-Placement Anrufe starten und empfangen, ohne dass ein für Anrufe geeignetes Gerät erforderlich ist, über das Terminal mit einer Android Debug Bridge (adb)-Broadcast.
- Mock-Anrufe: Die Anruffunktion wird simuliert. Dazu gehören das Halten, Stummschalten, Zusammenführen und Trennen von Anrufen.
DTF verwenden
Hinweis : Der DTF ist nur unter Android 11 oder höher verfügbar.
So verwenden Sie die DTF:
- Erstelle und installiere die Buildvariante
CarDialerAppForTesting
so:cd %rRepoRoot%/packages/apps/Car/Dialer m CarDialerAppForTesting adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
Daher ersetzt
CarDialerAppForTesting
die ursprüngliche Telefon App auf dem Testgerät.CarDialerAppForTesting
funktioniert nicht auf echten Geräten. Wenn Sie mit einem echten Gerät testen möchten, müssen Sie dieCarDialerApp.apk
neu installieren.
Befehle
Die folgenden adb-Befehle funktionieren nur, nachdem die Telefon App zum ersten Mal gestartet wurde, und erfordern die Initialisierung des Broadcast-Empfängers. Nach dem Starten des Dialers muss ein gefälschtes Bluetooth-Gerät verbunden sein. Verwenden Sie dazu den Befehl „(Einrichtung) Gerät verbinden“.
(Einrichten) Gerät verbinden
Stellt eine gefälschte Bluetooth-Verbindung zum Telefon her und muss zuerst aufgerufen werden, um den Zugriff auf alle anrufbezogenen Befehle zu ermöglichen.
So verbinden Sie ein Gerät:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"
Hinweis : Die folgenden Befehle können erst verwendet werden, nachdem ein gefälschtes Bluetooth-Gerät verbunden wurde.
Ausgehende Anrufe starten
So starten Sie einen ausgehenden Anruf:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"
Eingehenden Anruf erhalten
So nehmen Sie einen Anruf entgegen:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"
Anruf beenden
So beenden Sie einen Anruf:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"
Aktuellen Anruf halten
So halten Sie den aktuellen Anruf:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"
Aktuellen Anruf fortsetzen
So beenden Sie die Warteschleife für den aktuellen Anruf:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"
Anrufe zusammenführen
Den primären und sekundären Anruf zu einer Telefonkonferenz zusammenführen. Dieser Befehl funktioniert nur, wenn sowohl der primäre als auch der sekundäre Aufruf vorhanden sind. Eine bestehende Telefonkonferenz wird als einzelne Entität 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
So entfernen Sie alle Anrufe aus der Anrufliste:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"
Emulator-Build
Manchmal möchten Entwickler UI-Änderungen in einem Emulator testen. In solchen Fällen bietet CarDialerAppEmulatorBuild
eine vereinfachte Einrichtung und eingeschränkte Funktionen im Vergleich zur leistungsfähigeren DTF.
Testdaten
Wenn der Dialer gestartet wird, wird die Bluetooth-Fehlerseite umgangen und der Hauptinhalt von TelecomActivity
wird angezeigt. Kontakte und Anruflisten werden auf dem lokalen Gerät angezeigt. Entwickler können die Standard-App „Kontakte“ verwenden, um Testkontakte zu erstellen oder eine .vcf
-Datei zu importieren.
Anruf-Mockup
Wenn Sie eingehende Anrufe simulieren möchten, verwenden Sie den Android-Emulator, um Telnet-Befehle zu senden. Weitere Informationen finden Sie unter Apps im Android-Emulator ausführen und Emulator-Konsolenbefehle senden.
telnet localhost 5554 gsm call xxx-xxx-xxxx
Wenn Sie in der Telefon App einen Anruf starten oder einen Anruf-Intent senden, wird ein ausgehender Anruf gestartet.
adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx