Déboguer et tester

Le Téléphone est équipé d'un framework de débogage et de test intégré qui vous permet de valider les fonctionnalités de l'application Téléphone sans avoir besoin d'appareils prêts à passer des appels. Il n'est donc plus nécessaire d'utiliser le Bluetooth ni de connecter un téléphone avec un service mobile. Ce framework de test du clavier (DTF) simplifie les processus suivants:

  • La configuration d'un appareil réel pour valider rapidement des idées prend généralement du temps.
  • Pour tester les fonctionnalités multi-appels, vous devez disposer d'au moins trois téléphones équipés de cartes SIM, dont deux ne servent qu'à passer des appels.
  • Débogage du Dialer et de ses dépendances

Étant donné que la fonctionnalité du clavier dépend de plusieurs piles technologiques, y compris Telecom, Telephony et le profil mains libres Bluetooth (HFP), les bugs et les problèmes qui surviennent dans ces dépendances peuvent entraîner une instabilité du clavier. Le DTF permet au Dialer de s'exécuter indépendamment de ces dépendances.

Fonctionnalités

Le DTF propose les fonctionnalités suivantes:

  • Emplacement de l'appel Passez et recevez des appels sans avoir besoin d'un appareil prêt à passer des appels via le terminal avec une diffusion Android Debug Bridge (adb).
  • Appels fictifs La fonctionnalité d'appel est simulée. Cela inclut la mise en attente, le masquage du son, la fusion et la déconnexion.

Utiliser le DTF

Remarque : Le DTF n'est disponible que sur Android 11 ou version ultérieure.

Pour utiliser le DTF:

  1. Compilez et installez la variante de compilation CarDialerAppForTesting comme suit:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    Par conséquent, CarDialerAppForTesting remplace l'application Téléphone d'origine sur l'appareil de test.

    CarDialerAppForTesting ne fonctionne pas avec des appareils réels. Pour tester avec un appareil réel, réinstallez le CarDialerApp.apk.

Commandes

Les commandes adb suivantes ne fonctionnent que lorsque le Téléphone est lancé pour la première fois et nécessitent l'initialisation du broadcast receiver. Après avoir lancé le Téléphone, un faux appareil Bluetooth doit être connecté. Pour ce faire, utilisez la commande (Configuration) Connecter un appareil suivante.

(Configurer) Connecter un appareil

Établit une fausse connexion Bluetooth avec le Dialer et doit être appelé en premier pour activer l'accès à toutes les commandes liées aux appels.

Pour connecter un appareil:

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

Remarque : Chaque commande suivante ne peut être utilisée qu'après la connexion d'un faux appareil Bluetooth.

Passer un appel sortant

Pour passer un appel sortant:

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

Recevoir un appel entrant

Pour recevoir un appel entrant:

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

Mettre fin à un appel

Pour mettre fin à un appel:

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

Mettre l'appel en attente

Pour mettre l'appel en cours en attente:

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

Reprendre l'appel en cours

Pour retirer l'appel en cours de la mise en attente:

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

Fusionner les appels

Fusionner les appels principal et secondaire en conférence Cette commande ne fonctionne que lorsque les appels principaux et secondaires existent. Une conférence téléphonique existante est considérée comme une entité unique.

Pour fusionner des appels:

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

Effacer tous les appels

Pour supprimer tous les appels de la liste:

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

Version de l'émulateur

Il peut arriver que les développeurs souhaitent tester les modifications apportées à l'interface utilisateur sur un émulateur. Dans ce cas, CarDialerAppEmulatorBuild offre une configuration simplifiée et des fonctionnalités limitées par rapport à DTF, qui est plus puissant.

Données de test

Lorsque le clavier est lancé, la page d'erreur Bluetooth est ignorée et le contenu principal de TelecomActivity s'affiche. Les contacts et les journaux d'appels s'affichent sur l'appareil local. Les développeurs peuvent utiliser l'application Contacts d'origine pour créer des contacts de test ou pour importer un fichier .vcf.

Simulation d'appels

Pour simuler des appels entrants, utilisez Android Emulator pour envoyer des commandes Telnet. Pour en savoir plus, consultez les pages Exécuter des applications sur Android Emulator et Envoyer des commandes à la console de l'émulateur.

telnet localhost 5554
gsm call xxx-xxx-xxxx

Passer un appel téléphonique dans l'application Téléphone ou diffuser un intent d'appel lance un appel sortant.

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