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. Face 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
intenção. Isto 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 iniciador 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 o Dialer para exibir o estado do telefone conectado no momento (bem como outras informações).
Centro de Notificação
Notificação de alerta (HUN) é exibida para chamadas recebidas. Quando o Dialer
InCallServiceImpl
recebe uma chamada, o Dialer publica um HUN na Central de Notificações, que mostra os detalhes da chamada, como número de telefone ou informações de contato. O Dialer também exibe dois botões de ação, Atender e Recusar. Ao tocar no botão Atender, a chamada é atendida eInCallServiceImpl
trata a chamada ativa para mostrar a interface do usuário da chamada do Dialer e descarta 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 de usuário InCall do Dialer.
Assistente. Os usuários podem pedir a um assistente para fazer uma chamada que pode exibir a interface do usuário do Dialer InCall.
Google Mapas. Ligar para 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 tecla física dos botões Chamar e Encerrar Chamada no volante. Pressionando o:
O botão de chamada do volante quando não há chamada recebida envia a intenção DIAL e exibe a página Dialpad do Discador.
O botão de chamada no volante quando há uma chamada recebida faz com que o TelecomManager atenda a chamada.
Botão Encerrar chamada no volante quando há uma chamada recebida, o TelecomManager encerra a chamada.
Bluetooth
Cliente PBAPC. 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 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 apagados quando o telefone é desconectado.PBAPClient
não interage diretamente com o Dialer, mas grava contatos no Provedor de Contatos. O Dialer lê os contatos do Provedor de Contatos.HfpClientConnectionService
. Gere a chamada Bluetooth através de HFP e reporta a chamada aos serviços de Telecom.
Telecomunicações. 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 do InCallService do Dialer para lidar com chamadas. Para obter mais detalhes, consulte Criar um aplicativo de telefone substituto e Tornar-se o aplicativo de telefone padrão .Configurações de sistema. O Dialer monitora a lista de dispositivos conectados ao HFP e exibe uma mensagem de erro quando nenhum telefone está conectado ao discador através de Bluetooth. Na referência AOSP, o botão Conectar ao Bluetooth vincula os usuários à página 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 condução do carro. O Dialer deve executar todas as restrições de distração ao dirigir UX. Para fazer isso, o Dialer 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 as 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 conseguiu acessar a página Configurações do discador enquanto dirigia. Ao tocar no menu Configurações na 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 aparecerá 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 Erro, quando nenhum dispositivo Bluetooth estiver conectado, um botão Conectar ao Bluetooth exibe a página de configurações do Bluetooth do sistema. O UXR deste botão é totalmente restrito. Durante a condução, 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 adicionar aos favoritos enquanto dirige. O botão Adicionar um favorito está desativado.
Fluxos de usuários
Discador Principal
As diferentes páginas do Dialer são fornecidas abaixo.
Figura 2. Página principal do discador
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
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