O diagrama a seguir ilustra os componentes do sistema que interagem com o Dialer:
Figura 1. Componentes que interagem com o Dialer
IU do sistema. Faceta de navegação inferior para hospedar o botão Telefone, que registra a
intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
de intenção. Isso inicia a atividade principal do usuário,TelecomActivity
.Iniciador de aplicativos. Gerencia toda a lista de aplicativos. Dialer declara TelecomActivity com
android.intent.category.LAUNCHER
. Selecionar o aplicativo de telefone na lista de aplicativos do inicializador exibe TelecomActivity.Widget inicial. Na referência AOSP, não há widget Home. Os OEMs podem querer considerar a adição de um widget Home para Discador para exibir o estado do telefone conectado no momento (bem como outras informações).
Centro de Notificação
Notificação Heads Up (HUN) é exibida para chamadas recebidas. Quando o Dialer
InCallServiceImpl
recebe uma chamada, o Dialer envia um HUN para o centro de notificação, que mostra os detalhes da chamada, como número de telefone ou informações de contato. O Discador também exibe dois botões de ação, Atender e Recusar. Ao tocar no botão Atender, a chamada é atendida eInCallServiceImpl
lida com a chamada ativa para mostrar a IU do discador na chamada e dispensa o HUN. Clicar no HUN exibe a página InCall em tela cheia com os botões Atender e Rejeitar.A notificação aparece para chamadas perdidas não lidas. Clicar na notificação exibe a página Histórico de chamadas e marca as chamadas perdidas como lidas. Tocar no botão Call Back faz uma chamada e exibe a interface do usuário InCall do discador.
Assistente. Os usuários podem pedir a um assistente para fazer uma chamada que pode exibir a interface do usuário do Dialer InCall.
Mapas do Google. Chamar um comerciante do Google Maps envia a intenção DIAL com extras de números de telefone que iniciarão a página Dialpad para discagem rápida.
CarInputService. Monitora a chave física dos botões Chamar e Terminar Chamada no volante. Pressionando o:
O botão de chamada no volante quando não há chamada recebida envia a intenção DIAL e exibe a página Dialpad do Dialer.
Botão de chamada no volante quando há uma chamada recebida faz com que o TelecomManager atenda a chamada.
Botão End Call no volante quando há uma chamada recebida, o TelecomManager encerra a chamada.
Bluetooth
PBAPClient. Baixa contatos de um telefone e grava no provedor de contatos. Para cada telefone conectado, uma conta é criada com o endereço MAC Bluetooth do dispositivo como o nome da conta e
com.android.bluetooth.pbapsink
(@string/pbap_account_type
definido empackages/apps/Bluetooth
) como o tipo de conta. Os contatos gravados no provedor de contatos são gravados com as informações da conta e são apagados quando o telefone é desconectado.PBAPClient
não interage diretamente com o Dialer, mas grava contatos no provedor de contatos. Discador lê os contatos do provedor de contatos.HfpClientConnectionService
. Gerencia a chamada Bluetooth através do HFP e reporta a chamada aos serviços de Telecom.
Telecom. A estrutura Android Telecom gerencia chamadas de áudio e vídeo em um dispositivo Android. Como o Dialer é o aplicativo de telefone padrão, ele implementa as APIs
InCallService
eInCallController
vinculará a implementação InCallService do Dialer para lidar com as chamadas. Para obter mais detalhes, consulte Criar um aplicativo de telefone substituto e Tornando-se o aplicativo de telefone padrão .Configurações de sistema. O discador monitora a lista de dispositivos conectados ao HFP e exibe uma mensagem de erro quando nenhum telefone está conectado ao discador por meio de Bluetooth. Na referência AOSP, o botão Conectar ao Bluetooth vincula os usuários à página de configurações de Bluetooth do sistema para emparelhar um novo dispositivo ou conectar-se a um dispositivo emparelhado.
Motor de distração do motorista. Este serviço do sistema Android impõe restrições de UX com base no estado de direção do carro. O discador deve executar todas as restrições de distração de direção do UX. Para fazer isso, o discador deve ouvir o CarUXRestrictionManager e implementar todas as políticas. O discador deve:
Conecte-se à biblioteca Car e obtenha uma instância de CarUXRestrictionManager .
Assine atualizações na lista de CarUxRestrictions e implemente-as conforme documentado.
De particular importância para o Dialer:
A página de configurações é otimizada para veículos. O usuário não pode acessar a página de configurações do discador ao dirigir. Ao tocar no menu Configurações da barra de ação, uma tela de bloqueio é exibida para impedir que o usuário acesse as Configurações enquanto dirige. Se a página Configurações já estiver exibida, a tela de bloqueio será exibida para interromper a interação do usuário.
As configurações do sistema não podem ser acessadas durante a condução. Na página de erro, quando nenhum dispositivo Bluetooth está conectado, um botão Conectar ao Bluetooth exibe a página de configurações de Bluetooth do sistema. O UXR deste botão é totalmente restrito. Ao dirigir, clicar neste botão exibe uma mensagem de erro para informar ao usuário que primeiro estacione o carro e depois execute a ação.
O usuário não pode iniciar o fluxo de adicionar aos favoritos enquanto dirige. O botão Adicionar um Favorito está desativado.
Fluxos de usuário
discador principal
As diferentes páginas do Discador são fornecidas abaixo.
Figura 2. Página do discador principal
Tratamento de Chamadas
O fluxo do processo de atendimento de chamadas é apresentado a seguir:
Figura 3. Tratamento de chamadas
Notificações
As diferentes páginas de notificações são exibidas abaixo:
Figura 4. Notificações
Status da chamada recebida
O fluxo da página InCall é mostrado abaixo:
Figura 5. Página InCall
Procurar
As telas de pesquisa são:
Figura 6. Pesquisa
Configurações
As opções de Configurações são:
Figura 7. Configurações