En el siguiente diagrama, se ilustran los componentes del sistema que interactúan con el Marcador:
Figura 1: Componentes que interactúan con el marcador
-
IU del sistema. Faceta de navegación inferior para alojar el botón Teléfono, que registra el intent
intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
. Esto inicia la actividad principal del usuario,TelecomActivity
. -
Selector de aplicaciones. Administra toda la lista de apps. El selector declara TelecomActivity con
android.intent.category.LAUNCHER
. Si seleccionas la app de teléfono de la lista de apps del selector, se mostrará TelecomActivity. -
Widget de la pantalla principal. En la referencia de AOSP, no hay un widget de Home. Los OEMs deberían considerar agregar un widget de la pantalla principal para el Dialer para mostrar el estado del teléfono conectado actual (además de otra información).
-
Centro de notificaciones
-
Se muestra una notificación emergente (HUN) para las llamadas entrantes. Cuando el marcador
InCallServiceImpl
recibe una llamada entrante, publica un HUN en el centro de notificaciones, que muestra los detalles de la llamada, como el número de teléfono o la información de contacto. El marcador también muestra dos botones de acción: Responder y Rechazar. Cuando presionas el botón Responder, se responde la llamada yInCallServiceImpl
controla la llamada activa para mostrar la IU de llamada del teléfono y descartar el HUN. Si haces clic en el HUN, se mostrará la página de InCall en pantalla completa con los botones Responder y Rechazar. -
Aparece una notificación de llamadas perdidas no leídas. Si haces clic en la notificación, se mostrará la página Historial de llamadas y se marcarán las llamadas perdidas como leídas. Si presionas el botón Llamar, se realiza una llamada y se muestra la interfaz de usuario de InCall del Dialer.
-
-
Asistente. Los usuarios pueden pedirle a un asistente que realice una llamada que pueda mostrar la interfaz de usuario de Teléfono en llamada.
-
Google Maps. Cuando llamas a un comercio desde Google Maps, se envía el intent DIAL con números de teléfono adicionales, lo que iniciará la página de Dialpad para realizar llamadas rápidas.
-
CarInputService. Supervisa la tecla física de los botones de llamada y finalizar llamada en el volante. Presiona las siguientes teclas:
-
El botón de llamada del volante, cuando no hay una llamada entrante, envía el intent DIAL y muestra la página del teclado del teléfono.
-
El botón de llamada del volante cuando hay una llamada entrante hace que TelecomManager responda la llamada.
-
Botón Finalizar llamada del volante cuando hay una llamada entrante, el TelecomManager finaliza la llamada.
-
-
Bluetooth
-
PBAPClient. Descarga contactos de un teléfono y escribe en el proveedor de contactos. Para cada teléfono conectado, se crea una cuenta con la dirección MAC de Bluetooth del dispositivo como nombre de la cuenta y
com.android.bluetooth.pbapsink
(@string/pbap_account_type
definido enpackages/apps/Bluetooth
) como el tipo de cuenta. Los contactos que se escriben en el proveedor de contactos se escriben con la información de la cuenta y se borran cuando se desconecta el teléfono.PBAPClient
no interactúa directamente con el Marcador, sino que escribe contactos en el Proveedor de contactos. El selector de llamadas lee los contactos del proveedor de contactos. -
HfpClientConnectionService
. Administra la llamada Bluetooth a través de HFP y la informa a los servicios de telecomunicaciones.
-
-
Telecom. El framework de Android Telecom administra las llamadas de audio y video en un dispositivo Android. Como Teléfono es la app de teléfono predeterminada, implementa las APIs de
InCallService
yInCallController
vinculará la implementación de InCallService de Teléfono para controlar las llamadas. Para obtener más detalles, consulta Cómo crear una app de teléfono de reemplazo y Cómo convertirse en la app de teléfono predeterminada. -
Configuración del sistema. El selector supervisa la lista de dispositivos conectados a HFP y muestra un mensaje de error cuando no hay teléfonos conectados al selector a través de Bluetooth. En la referencia de AOSP, el botón Conectar a Bluetooth vincula a los usuarios a la página Configuración de Bluetooth del sistema para vincular un dispositivo nuevo o conectarse a uno vinculado.
-
Motor de distracción del conductor. Este servicio del sistema Android impone restricciones de UX según el estado de conducción del automóvil. El selector debe ejecutar todas las restricciones de distracción de conducción de la UX.Para ello, debe escuchar el CarUXRestrictionManager y, luego, implementar todas las políticas. El teléfono debe cumplir con los siguientes requisitos:
-
Conéctate a la biblioteca de Car y obtén una instancia de CarUXRestrictionManager.
-
Suscríbete a las actualizaciones en la lista de CarUxRestrictions y, luego, impleméntalas como se documenta.
-
De especial importancia para el Dialer:
-
La página de configuración está optimizada para el vehículo. El usuario no pudo acceder a la página de configuración del marcador mientras conducía. Si presionas el menú Configuración desde la barra de acción, se muestra una pantalla de bloqueo para evitar que el usuario acceda a Configuración mientras conduce. Si ya se muestra la página Configuración, aparecerá la pantalla de bloqueo para detener la interacción del usuario.
-
No se puede acceder a la configuración del sistema mientras conduces. En la página de error, cuando no hay dispositivos Bluetooth conectados, el botón Conectar a Bluetooth muestra la página de configuración de Bluetooth del sistema. El UXR de este botón está completamente restringido. Mientras conduces, si haces clic en este botón, se mostrará un mensaje de error para informarle al usuario que primero debe estacionar el automóvil y, luego, realizar la acción.
-
El usuario no puede iniciar el flujo de agregar a favoritos mientras conduce. El botón para agregar un favorito está inhabilitado.
-
-
Flujos de usuarios
Dialer Main
A continuación, se proporcionan las diferentes páginas del Dialer.
Figura 2: Página principal del Dialer
Manejo de llamadas
A continuación, se presenta el flujo de proceso de control de llamadas:
Figura 3: Manejo de llamadas
Notificaciones
A continuación, se muestran las diferentes páginas de notificaciones:
Figura 4: Notificaciones
Estado de llamada
A continuación, se muestra el flujo de la página En llamada:
Figura 5: Página de InCall
Buscar
Las pantallas de búsqueda son las siguientes:
Figura 6: Buscar
Configuración
Las opciones de configuración son las siguientes:
Figura 7: Configuración