Conversas

O Android 11 traz uma série de melhorias na maneira como as conversas são tratadas. As conversas são uma forma de comunicação que:

  • acontece em tempo real;
  • é bidirecional ou multidirecional, não de "mão única";
  • ocorre entre duas ou mais pessoas (não bots).

Agora, essas conversas são apresentadas na própria área, e as notificações delas são destacadas e recebem funcionalidades extras:

  • Se o usuário tocar em uma notificação de conversa e a mantiver pressionada, o sistema oferecerá várias opções:
    • Promover a conversa paraum balão, se o app for compatível com balões.
    • Criar um atalho para a conversa e adicioná-la à tela inicial.
    • Silenciar ou adiar notificações para a conversa.
    • Marcar a conversa como muito importante.
  • O design da notificação usa uma nova versão de MessagingStyle, que enfatiza um avatar para representar as pessoas, combinado com o ícone do app em que a conversa está sendo realizada.

Para identificar uma conversa de modo que ela receba esse tratamento especial, seu app precisa publicar um atalho para a conversa chamando os métodos ShortcutManager. Chame setDynamicShortcuts() para substituir todos os atalhos existentes ou addDynamicShortcuts() para adicionar novos atalhos sem remover os antigos. Você também pode chamar o novo método pushDynamicShortCut() para adicionar um único atalho. Os atalhos de conversa precisam ter longa duração e ter dados de pessoas anexados, identificando os outros participantes da conversa. Também recomendamos que você defina o LocusId para o atalho e anote as atividades no app e os fragmentos com LocusId. Isso ajuda o sistema a classificar as conversas de modo preciso com base no uso do app.

Se uma conversa não existir mais, o app poderá excluir o atalho com ShortcutManager.removeLongLivedShortcuts(). Isso faz com que o sistema exclua todos os dados associados à conversa.

Quando seu app enviar uma notificação relacionada a uma conversa, use MessagingStyle e inclua um link para o atalho da conversa. Isso permite que o sistema dê à notificação o tratamento especial de conversa.

Com base no comportamento do usuário, o sistema pode designar determinadas conversas como sendo especialmente importantes e armazená-las em cache, exibindo-as com mais destaque. O app não pode influenciar quais conversas recebem esse tratamento prioritário, mas você pode descobrir quais conversas são armazenadas em cache chamando o novo método ShortcutManager.getShortcuts() e transmitindo FLAG_MATCH_CACHED.