Detalhes técnicos

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

Componentes 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 e InCallServiceImpl 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 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 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 e InCallController 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.

Página do discador principal

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 da chamada recebida

O fluxo da página InCall é mostrado abaixo:

página Chamada recebida

Figura 5. Página InCall

As telas de pesquisa são:

Procurar

Figura 6. Pesquisa

Configurações

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

Configurações

Figura 7. Configurações