Debug e test

La funzionalità Telefono è dotata di un framework di debug e test integrato che ti consente di verificare le funzionalità dell'app Telefono senza dover utilizzare dispositivi pronti per le chiamate. In questo modo non è necessario il Bluetooth e gli smartphone connessi con servizio di telefonia mobile. Questo framework di test del tastierino (DTF) semplifica queste procedure:

  • La configurazione di un dispositivo reale per convalidare rapidamente le idee in genere richiede tempo.
  • Per testare le funzionalità di chiamata multipla sono necessari almeno tre telefoni con schede SIM, di cui due utilizzati solo per effettuare chiamate.
  • Eseguire il debug di Dialer e delle sue dipendenze.

Poiché la funzionalità di Telefono dipende da diversi stack tecnologici, tra cui Telecom, Telefonia e Profilo HFP (Hands Free Profile) Bluetooth, i bug e i problemi che si verificano in queste dipendenze possono causare l'instabilità di Telefono. Il DTF consente a Dialer di funzionare indipendentemente da queste dipendenze.

Funzionalità

Il DTF fornisce le seguenti funzionalità:

  • Posizionamento delle chiamate. Effettua e ricevi chiamate senza bisogno di un dispositivo pronto per le chiamate tramite il terminale con un broadcast di Android Debug Bridge (adb).
  • Chiamate simulate. La funzionalità di chiamata è simulata. Sono inclusi la messa in attesa, l'attivazione della disattivazione audio, la combinazione e la disconnessione.

Utilizzare il DTF

Nota: il DTF è disponibile solo su Android 11 o versioni successive.

Per utilizzare il DTF:

  1. Compila e installa la variante di compilazione CarDialerAppForTesting nel seguente modo:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    Di conseguenza, CarDialerAppForTesting sostituisce l'app Telefono originale sul dispositivo di test.

    CarDialerAppForTesting non funziona con dispositivi reali. Per eseguire il test con un dispositivo reale, reinstalla CarDialerApp.apk.

Comandi

I seguenti comandi adb funzionano solo dopo l'avvio di Telefono per la prima volta e richiedono l'inizializzazione del ricevitore di trasmissione. Dopo aver avviato Telefono, deve essere collegato un dispositivo Bluetooth falso. A tale scopo, utilizza il seguente comando (Configurazione) Connetti un dispositivo.

(Configurazione) Collegare un dispositivo

Stabilisce una connessione Bluetooth falsa con Telefono e deve essere chiamato per primo per consentire l'accesso a tutti i comandi relativi alle chiamate.

Per connettere un dispositivo:

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

Nota: solo dopo aver connesso un dispositivo Bluetooth falso è possibile utilizzare ciascuno dei comandi riportati di seguito.

Effettuare una chiamata in uscita

Per effettuare una chiamata in uscita:

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

Ricevere una chiamata in arrivo

Per ricevere una chiamata in arrivo:

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

Terminare una chiamata

Per terminare una chiamata:

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

Mettere in attesa la chiamata in corso

Per mettere in attesa la chiamata in corso:

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

Riattiva la chiamata in corso

Per riattivare la chiamata in attesa:

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

Unisci

Unisci le chiamate principali e secondarie in un'audioconferenza. Questo comando funziona solo se esistono sia le chiamate principali che quelle secondarie. Un'audioconferenza esistente è considerata una singola entità.

Per unire le chiamate:

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

Cancella tutte le chiamate

Per rimuovere tutte le chiamate dall'elenco:

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

Build dell'emulatore

A volte gli sviluppatori potrebbero voler testare le modifiche all'interfaccia utente su un emulatore. In questi casi, CarDialerAppEmulatorBuild offre una configurazione semplificata e funzionalità limitate rispetto al DTF più potente.

Dati di test

Quando viene avviato il Dialer, la pagina di errore Bluetooth viene ignorata e vengono visualizzati i contenuti principali diTelecomActivity. I contatti e i log delle chiamate vengono visualizzati sul dispositivo locale. Gli sviluppatori possono utilizzare l'app Contatti predefinita per creare contatti di prova o importare un file.vcf.

Simulazione di chiamate

Per simulare le chiamate in entrata, utilizza Android Emulator per inviare comandi Telnet. Per scoprire di più, consulta Eseguire app nell'emulatore Android e Inviare comandi della console dell'emulatore.

telnet localhost 5554
gsm call xxx-xxx-xxxx

L'invio di una chiamata nell'app Telefono o la trasmissione di un'intenzione di chiamata avvia una chiamata in uscita.

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