El Dialer está equipado con un framework de depuración y pruebas integrado que te permite validar las funciones de la app de Dialer sin necesidad de dispositivos listos para llamadas. Esto elimina la necesidad de Bluetooth y teléfonos conectados con servicio celular. Este framework de pruebas de marcado (DTF) simplifica estos procesos:
- Configurar un dispositivo real para validar rápidamente las ideas suele consumir tiempo.
- Para probar las funciones de varias llamadas, se requieren al menos tres teléfonos con tarjetas SIM, dos de los cuales se usan solo para realizar llamadas.
- Depuración del Dialer y sus dependencias
Dado que la funcionalidad del Dialer depende de varias pilas de tecnología, como Telecom, Telephony y el perfil Bluetooth Hands Free (HFP), los errores y problemas que surgen en esas dependencias pueden causar inestabilidad en el Dialer. El DTF permite que el Dialer se ejecute independientemente de estas dependencias.
Funciones
La DTF proporciona las siguientes funciones:
- Ubicación de la llamada. Haz y recibe llamadas sin necesidad de un dispositivo listo para llamadas a través de la terminal con una transmisión de Android Debug Bridge (adb).
- Llamadas de prueba. Se simula la funcionalidad de llamada. Esto incluye mantener en espera, silenciar, combinar y desconectar.
Usa el DTF
Nota: La DTF solo está disponible en Android 11 o versiones posteriores.
Para usar el DTF, haz lo siguiente:
- Compila e instala la variante de compilación
CarDialerAppForTesting
de la siguiente manera:cd %rRepoRoot%/packages/apps/Car/Dialer m CarDialerAppForTesting adb install %rRepoRoot%/out/target/product/%buildTarget%/system/priv-app/CarDialerAppForTesting/CarDialerAppForTesting.apk
Como resultado,
CarDialerAppForTesting
reemplaza la app de Teléfono original en el dispositivo de prueba.CarDialerAppForTesting
no funciona con dispositivos reales. Para probar con un dispositivo real, reinstalaCarDialerApp.apk
.
Comandos
Los siguientes comandos de adb solo funcionan después de que se inicia Teléfono por primera vez y requieren que se inicialice el receptor de emisión. Después de iniciar el Dialer, se debe conectar un dispositivo Bluetooth falso. Para ello, usa el siguiente comando (Configuración) Conectar un dispositivo.
(Configuración) Conecta un dispositivo
Establece una conexión Bluetooth falsa con el Dialer y se debe llamar primero para habilitar el acceso a todos los comandos relacionados con las llamadas.
Para conectar un dispositivo, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "connect"
Nota: Solo después de conectar un dispositivo Bluetooth falso, se puede usar cada uno de los siguientes comandos.
Cómo realizar una llamada saliente
Para realizar una llamada saliente, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "addCall" --es "id" "4085524874"
Cómo recibir una llamada entrante
Para recibir una llamada entrante, sigue estos pasos:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "rcvCall" --es "id" "4085524874"
Cómo finalizar una llamada
Para finalizar una llamada, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "endCall" --es "id" "4085524874"
Retener la llamada actual
Para poner la llamada actual en espera, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "holdCall"
Dejar de poner la llamada actual en espera
Para quitar la llamada actual en espera, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"
Combinar llamadas
Combina las llamadas principal y secundaria en una conferencia. Este comando solo funciona cuando existen las llamadas principales y secundarias. Una conferencia telefónica existente se considera una sola entidad.
Para combinar llamadas, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "unholdCall"
Borrar todas las llamadas
Para quitar todas las llamadas de la lista de llamadas, haz lo siguiente:
adb shell am broadcast -a com.android.car.dialer.intent.action.adb --es "action" "clearAll"
Compilación del emulador
A veces, los desarrolladores pueden querer probar los cambios de la IU en un emulador. En esos casos, CarDialerAppEmulatorBuild
proporciona una configuración simplificada y una funcionalidad limitada en comparación con la DTF más potente.
Datos de pruebas
Cuando se inicia el selector, se omite la página de error de Bluetooth y se muestra el contenido principal de TelecomActivity
. Los contactos y los registros de llamadas se muestran en el dispositivo local. Los desarrolladores pueden usar la app de Contactos predeterminada para crear contactos de prueba o importar un archivo .vcf
.
Simulación de llamadas
Para simular llamadas entrantes, usa Android Emulator para enviar comandos Telnet. Para obtener más información, consulta Cómo ejecutar apps en Android Emulator y Cómo enviar comandos de la Consola del emulador.
telnet localhost 5554 gsm call xxx-xxx-xxxx
Cuando se realiza una llamada telefónica en la app de Teléfono o se transmite un intent de llamada, se inicia una llamada saliente.
adb shell am start -a android.intent.action.CALL tel:xxx-xxx-xxxx