Depurar e testar

O Dialer é equipado com uma estrutura integrada de depuração e teste que permite que você validar os recursos do aplicativo Telefone sem a necessidade de dispositivos prontos para chamadas. Isso elimina a necessidade para Bluetooth e smartphones conectados com serviço de rede celular. Este framework de teste de discador (DTF, na sigla em inglês) simplifica esses processos:

  • Configurar um dispositivo real para validar ideias rapidamente normalmente consome tempo.
  • O teste de recursos de várias chamadas requer pelo menos três smartphones equipados com chip, dois dos que são usados apenas para fazer chamadas.
  • Depurar o Telefone e as dependências dele.

Como a funcionalidade do Telefone depende de várias pilhas de tecnologia, como telecomunicações, telefonia, e o perfil de viva-voz (HFP, na sigla em inglês) do Bluetooth, bugs e problemas que surgem nessas dependências podem causar a inconsistência do Telefone. O DTF permite que o Telefone funcione de maneira independente dessas dependências.

Recursos

O DTF oferece estes recursos:

  • Posicionamento da ligação. Faça e receba chamadas sem a necessidade de uma pronto para chamadas por meio do terminal com um Android Debug Bridge (adb) transmissão.
  • Simulações de ligações. A funcionalidade de ligação é simulada. Isso inclui segurar, silenciar, fusão e desconexão.

Usar o DTF

Observação : o DTF está disponível apenas no Android 11 ou em 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, o CarDialerAppForTesting substitui o app Telefone original no dispositivo dispositivo de teste.

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

Comandos

Os seguintes comandos adb só funcionam depois que o Telefone é iniciado pela primeira vez e exigem que o broadcast receiver seja inicializado. Depois de iniciar o Telefone, um dispositivo Bluetooth falso precisa conectados. Use o seguinte comando (Configuração) Conectar um dispositivo para fazer isso.

(Configuração) Conectar um dispositivo

Estabelece uma conexão Bluetooth falsa com o Telefone e precisa ser chamado 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 : somente após a conexão de um dispositivo Bluetooth falso, cada uma das use os comandos a seguir.

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 ligação

Para encerrar uma ligação:

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"

Deixar de 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" "unholdCall"

Mesclar chamadas

Mesclar as chamadas principal e secundária em uma conferência telefônica. Esse comando só funciona quando existem chamadas primária e secundária. Uma teleconferência existente é considerada uma única com uma entidade conhecida.

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:

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, O CarDialerAppEmulatorBuild oferece uma configuração simplificada e funcionalidade limitada em comparação com o DTF mais potente.

Dados de teste

Quando o Telefone é iniciado, a página de erro do Bluetooth é ignorada e o conteúdo principal do TelecomActivity será exibido. Os contatos e o registro de chamadas são exibidos dispositivo. Os desenvolvedores podem usar o app Contatos para criar contatos de teste ou importar uma .vcf.

Simulação de chamada

Para simular chamadas recebidas, use o Android Emulator para enviar comandos do 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 telefônica no app Telefone ou transmitir uma intent de ligação inicia uma chamada de saída.

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