O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Notificações de conversas e widgets

Android 11 adiciona suporte para personalizar o comportamento e colocação de Notificações conversa sobre a sombra Notificações por prioridade e alertando nível, permitindo conversas a ser marcado como específica Importante e conversa bolhas para ser lançado no espaço de conversação.

Com base nesses recursos do Android 11, o Android 12 oferece dois novos recursos de conversação:

  • O recurso Conversas recentes em Configurações permite que os usuários personalizem o comportamento de notificação para conversas recentes sem esperar por uma notificação.

  • O recurso Conversation Widget permite que os usuários abram bate-papos facilmente na tela inicial, dando uma visão rápida das conversas recentes.

Este documento descreve os aspectos de implementação, personalização e validação de notificações de conversa e widgets.

Visão geral das notificações de conversa

Android 11 introduz um novo sistema primitivo, a conversa, que é representado pelo existente objeto de compartilhamento de atalho (que foi lançado com o Android 9).

A primitiva Conversations pode ser usada da seguinte maneira:

  • Para compartilhar dados conversas entre os aplicativos em todo o sistema através Sharesheet (já em Android 10).

  • Para a condução bolhas ( atalhos no Android 11). Ver Figura 1 .

  • Para participar do novo espaço de conversação no topo da aba de notificação (implementado no Android 11). Ver Figura 2 .

  • Para criar Widgets Conversação (implementado em Android 12).

    conv_bubbles

    Figura 1: Notificação sendo lançado como uma bolha a partir da gaveta de notificação

    conv_notification

    Figura 2: Conversação espaço localizado na parte superior do painel de notificações

Além ligando para o atalho que representa a conversa, a notificação também usa MessagingStyle para incluir a última mensagem da conversa no espaço de conversação.

Os parceiros GMS são obrigados a implementar o seguinte:

  • Um novo espaço de Conversas como uma seção separada na parte superior da aba de Notificação.
  • Um estilo de notificação que permite e suporta o padrão de bolha específico de conversação.

Parceiros que implementam conversas também precisam implementar conversas importantes. No entanto, a implementação de Conversations pode ser alinhada com conceitos de OEM de natureza semelhante. No geral, os parceiros têm a liberdade de alinhar a seção de conversa com sua IU do sistema específica. O parceiro não precisa modificar ou implementar HAL / driver / código do kernel / extensões.

Consulte a implementação de referência a seguir nas seções SystemUI e PeopleService no AOSP:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Validação

Para garantir que sua versão do recurso funcione conforme o esperado, verifique o seguinte:

  1. Aplicativos que suportam totalmente a API Conversation ver as suas notificações na nova seção, e pode personalizar essas notificações por conversa em vez de pelo genérico NotificationChannel .

  2. Bolhas específicas de conversas estão funcionando.

Para validar a implementação, use os seguintes testes no pacote de notificação:

  • Testes CTS.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Testes do verificador CTS.

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

Visão geral dos widgets de conversa

No Android 12, o recurso Conversation Widget baseia-se nas representações de conversação criadas no Android 11 (conforme a seção anterior descreve), permitindo que os aplicativos forneçam status para as conversas que são exibidas nos Widgets de conversação.

conv_widgets

Figura 3: Conversações exibido na conversação widgets

O recurso Conversation Widget no Android 12 promove a conexão, permitindo que os usuários abram bate-papos facilmente na tela inicial. Os widgets são atalhos aprimorados que permitem aos usuários voltar com eficiência às suas conversas enquanto mostram trechos do status da conversa.

O parceiro deve implementar o seguinte:

  1. Um widget fornecido pela SystemUI.
  2. Um fluxo para adicionar esses widgets da tela de seleção de widgets.
  3. Suporte para redimensionamento de widget da seguinte maneira:

Esteja ciente das seguintes dependências ao implementar Widgets de conversação:

  • O parceiro não precisa modificar ou implementar código HAL / driver / kernel.
  • A API de status, que permite que os aplicativos adicionem informações de status ou disponibilidade a uma conversa e o widget associado, é usada para implementação.
  • O processo é o mesmo nas novas implementações de dispositivo e na implementação de atualização.
  • O recurso Conversation Widgets depende de um novo recurso lançado no Android 12, que armazena em cache as conversas vistas recentemente (de notificações, por exemplo). Este último recurso permite expandir a lista de conversas que um usuário pode potencialmente adicionar à sua tela inicial.

Consulte a seguinte implementação de referência nos arquivos SystemUI e Launcher3:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

Costumização

O recurso Conversation Widgets não pode ser ativado ou desativado. No entanto, um parceiro pode alterar os layouts dos modelos de widget, desde que os requisitos do GMS sejam atendidos.

Validação

Para garantir que sua versão do recurso funcione conforme o esperado, verifique o seguinte:

  1. Ao pressionar longamente no Launcher, um novo widget de conversa para uma conversa pode ser adicionado por meio do seletor de widget. Consulte a figura 4 para a IU do seletor de widget:

    widget_picker

    Figura 4: Widget seletor de UI para adicionar uma nova conversa Widget

  2. Ao enviar notificações para o dispositivo da conversa selecionada, o widget é atualizado para refletir essas notificações.

  3. Ao aplicar status para essa conversa usando o ConversationStatus API, o widget reflete esses estados.

  4. Os usuários podem redimensionar widgets e os widgets podem alterar seus tamanhos com base em seu Launcher atual. Seus layouts de widget devem funcionar bem com diferentes tamanhos de Launcher em diferentes dispositivos e no redimensionamento do widget.

Para validar a implementação, use os seguintes testes no pacote de notificação:

  • Testes CTS (PeopleManagerTest) para as superfícies API.

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • Testes manuais para requisitos GMS - Conversas.