Depurar e testar

O discador tem um framework integrado de depuração e teste que permite validar os recursos do app sem a necessidade de dispositivos prontos para chamadas. Isso elimina a necessidade de Bluetooth e smartphones conectados com serviço de celular. Esse framework de teste de discador (DTF, na sigla em inglês) simplifica estes processos:

  • Configurar um dispositivo real para validar rapidamente ideias geralmente consome tempo.
  • Para testar os recursos de várias chamadas, são necessários pelo menos três smartphones com chip, sendo que dois deles são usados apenas para fazer ligações.
  • Depuração do discador e suas dependências.

Como a funcionalidade do discador depende de várias pilhas de tecnologia, incluindo telefonia, e perfil de viva-voz Bluetooth (HFP, na sigla em inglês), bugs e problemas que surgem nessas dependências podem causar instabilidade no discador. O DTF permite que o discador seja executado independentemente dessas dependências.

Recursos

O DTF oferece estes recursos:

  • Posicionamento da chamada. Fazer e receber ligações sem precisar de um dispositivo pronto para chamadas pelo terminal com uma transmissão do Android Debug Bridge (adb).
  • Ligações simuladas. A funcionalidade de chamada é simulada. Isso inclui colocar em espera, silenciar, mesclar e desconectar.

Usar o DTF

Observação : o DTF só está disponível no Android 11 ou versões mais recentes.

Para usar o DTF:

  1. Crie e instale a variante de build CarDialerAppForTesting da seguinte maneira:
    cd %rRepoRoot%/packages/apps/Car/Dialer
    
    m CarDialerAppForTesting
    
    adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
    

    Como resultado, CarDialerAppForTesting substitui o app Phone 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 apenas depois que o Telefone é iniciado pela primeira vez e exigem que o broadcast receiver seja inicializado. Depois de iniciar o discador, um dispositivo Bluetooth falso precisa ser conectado. Use o comando (Configuração) Conectar um dispositivo a seguir.

(Configurar) Conectar um dispositivo

Estabelece uma conexão Bluetooth falsa para o discador e precisa ser chamada primeiro para permitir o acesso a todos os comandos relacionados a chamadas.

Para conectar um dispositivo:

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

Observação : só é possível usar os comandos abaixo depois que um dispositivo Bluetooth falso é conectado.

Fazer uma chamada

Para fazer uma chamada:

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

Receber uma ligação

Para receber uma ligação:

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

Finalizar uma chamada

Para encerrar uma chamada:

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

Colocar a chamada atual em espera

Para colocar a chamada atual em espera:

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

Desativar o modo de espera da ligação 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

Mesclar as chamadas principais e secundárias em uma teleconferência. Esse comando só funciona quando as chamadas primária e secundária existem. Uma teleconferência atual é considerada uma única entidade.

Para mesclar ligações:

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

Limpar todas as chamadas

Para remover todas as ligações da lista:

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

Build do emulador

Às vezes, os desenvolvedores querem testar mudanças na interface em um emulador. Nesses casos, CarDialerAppEmulatorBuild oferece 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 app Contatos padrão para criar contatos de teste ou importar um arquivo .vcf.

Simulação de chamada

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

telnet localhost 5554
gsm call xxx-xxx-xxxx

Fazer uma chamada no app Telefone ou transmitir uma intent de chamada inicia uma chamada de saída.

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