Depuração e teste

O Dialer está equipado com uma estrutura integrada de depuração e teste que permite validar os recursos do aplicativo Dialer sem a necessidade de dispositivos prontos para chamadas. Isso elimina a necessidade de Bluetooth e telefones conectados com serviço de celular. Este Dialer Testing Framework (DTF) simplifica estes processos:

  • Configurar um dispositivo real para validar ideias rapidamente normalmente consome tempo.
  • O teste de recursos de chamadas múltiplas requer pelo menos três telefones equipados com cartão SIM, dois dos quais são usados ​​apenas para fazer chamadas.
  • Debugging Dialer e suas dependências.

Como a funcionalidade do Discador depende de várias pilhas de tecnologia, incluindo Telecom, Telefonia e Bluetooth Hands Free Profile (HFP), bugs e problemas que surgem nessas dependências podem causar falhas no Discador. O DTF permite que o Discador seja executado independentemente dessas dependências.

Recursos

O DTF fornece estes recursos:

  • Colocação de chamadas. Faça e receba chamadas sem a necessidade de um dispositivo pronto para chamadas através do terminal com uma transmissão Android Debug Bridge (adb) .
  • Chamadas simuladas. A funcionalidade de chamada é simulada. Isso inclui segurar, silenciar, mesclar e desconectar.

Usando o DTF

Observação: o DTF está disponível apenas no Android 11 ou superior.

Para usar o DTF:

  1. Crie e instale a variante de compilação CarDialerAppForTesting da seguinte forma:
    cd %rRepoRoo%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoo%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    Como resultado, CarDialerAppForTesting substitui o aplicativo Dialer original no dispositivo de teste.

    CarDialerAppForTesting não funciona com dispositivos reais. Para testar com um dispositivo real, reinstale o CarDialerApp.apk .

Comandos

Os comandos adb a seguir funcionam somente após o Dialer ser iniciado pela primeira vez e exigem que o broadcast receiver seja inicializado. Depois de iniciar o Dialer, um dispositivo Bluetooth falso deve ser conectado. Use o seguinte comando (Configuração) Conectar um dispositivo para fazer isso.

(Configuração) Conecte um dispositivo

Estabelece uma conexão Bluetooth falsa com o Discador e deve ser chamado primeiro para permitir o acesso a todos os comandos relacionados à chamada.

Para conectar um dispositivo:

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

Observação: somente após a conexão de um dispositivo Bluetooth falso, cada um dos comandos a seguir pode ser usado.

Fazer uma chamada de saída

Para fazer uma chamada de saída:

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

Receber uma chamada recebida

Para receber uma chamada:

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

Terminar uma chamada

Para encerrar uma chamada:

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

Reter a chamada atual

Para colocar a chamada atual em espera:

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

Liberar a chamada atual

Para tirar a chamada atual da espera:

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

Mesclar chamadas

Mescle as chamadas primárias e secundárias em uma chamada de conferência. Este comando funciona somente quando as chamadas primárias e secundárias existem. Uma chamada de conferência existente é considerada uma entidade única.

Para mesclar chamadas:

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

Limpar todas as chamadas

Para remover todas as chamadas da lista de chamadas:

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

Versão do emulador

Às vezes, os desenvolvedores podem querer testar as alterações da interface do usuário em um emulador. Nesses casos, CarDialerAppEmulatorBuild fornece uma configuração simplificada e funcionalidade limitada em comparação com o DTF mais poderoso.

Dados de teste

Quando o Discador é iniciado, a página de erro do Bluetooth é ignorada e o conteúdo principal de TelecomActivity é exibido. Os contatos e os registros de chamadas são exibidos no dispositivo local. Os desenvolvedores podem usar o aplicativo Stock Contacts para criar contatos de teste ou importar um arquivo .vcf .

Chamada de simulação

Para simular chamadas de entrada, use o Android Emulator para enviar comandos Telnet. Para saber mais, consulte Executar aplicativos no Android Emulator e Comandos de console de envio do emulador .

telnet localhost 5554
gsm call xxx-xxx-xxxx

Fazer uma chamada telefônica no aplicativo Discador ou transmitir uma intenção de chamada inicia uma chamada de saída.

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