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

Página principal do discador

Figura 2. Página principal do discador

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

O fluxo da página InCall é mostrado abaixo:

Página InCall

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