Detalhes técnicos

O diagrama a seguir ilustra os componentes do sistema que interagem com o Discador:

Componentes que interagem com o Discador

Figura 1. Componentes que interagem com o Discador

  • 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. O discador declara TelecomActivity com android.intent.category.LAUNCHER . A seleção do aplicativo de telefone na lista de aplicativos do iniciador exibe TelecomActivity.

  • Widget de casa. Na referência AOSP, não há widget Home. Os OEMs podem considerar adicionar um widget Home para Discador para exibir o estado do telefone conectado atual (assim como outras informações).

  • Centro de Notificação

    • A Notificação de Alerta (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. Discador também exibe dois botões de ação, Atender e Recusar. Ao tocar no botão Atender, a chamada é atendida e o InCallServiceImpl trata a chamada ativa para mostrar a interface do discador em 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 Dialer InCall.

  • Google Maps. Ligar para um comerciante do Google Maps envia a intenção de discagem com números de telefone extras que iniciarão a página do teclado de discagem para discagem rápida.

  • CarInputService. Monitora a tecla física dos botões Call e End Call no volante. Pressionando o:

    • O botão de chamada do volante quando não há chamada recebida envia a intenção de discagem e exibe a página do teclado de discagem do discador.

    • O botão de chamada do volante quando há uma chamada recebida faz com que o TelecomManager atenda a chamada.

    • Botão Terminar chamada do volante quando há uma chamada recebida, o TelecomManager encerra a chamada.

  • Bluetooth

    • PBACliente. Faz download de 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 em packages/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 Discador, mas grava os contatos no Provedor de Contatos. O 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 do 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 e o InCallController vinculará a implementação do InCallService do Dialer para lidar com as 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 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 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 Discador deve executar todas as restrições de distração de condução 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 as atualizações na lista de CarUxRestrictions e implemente-as conforme documentado.

    • De particular importância para o Discador:

      • A página de configurações é otimizada para o veículo. O usuário não pôde acessar a página 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 Erro, quando nenhum dispositivo Bluetooth está conectado, um botão Conectar ao Bluetooth exibe a página de configurações do sistema Bluetooth. O UXR deste botão é totalmente restrito. Durante a condução, clicar neste botão exibe uma mensagem de erro para informar o usuário para estacionar o carro primeiro e depois realizar 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á desabilitado.

Fluxos do usuário

Discador principal

As diferentes páginas do Discador são fornecidas abaixo.

Página principal do discador

Figura 2. Página do discador principal

Tratamento de chamadas

O fluxo do processo de atendimento de chamadas é apresentado a seguir:

Tratamento de chamadas

Figura 3. Tratamento de chamadas

Notificações

As diferentes páginas de notificações são exibidas abaixo:

Notificações

Figura 4. Notificações

Status de chamada

O fluxo da página InCall é mostrado abaixo:

Página de chamada

Figura 5. Página InCall

As telas de pesquisa são:

Procurar

Figura 6. Pesquisa

Definições

As opções de Configurações são:

Definições

Figura 7. Configurações