Você tem duas opções para atribuir prioridade de entrega a mensagens downstream no Android: prioridade normal e alta. A entrega de mensagens normais e de alta prioridade funciona assim:
Prioridade normal. Esta é a prioridade padrão para mensagens de dados . Mensagens de prioridade normal são entregues imediatamente quando o dispositivo não está em suspensão. Quando o dispositivo está no modo Soneca , a entrega pode ser adiada para economizar bateria até que o dispositivo saia do modo Soneca. Para mensagens menos urgentes, como notificações de novos e-mails, manter sua IU sincronizada ou sincronizar dados de aplicativos em segundo plano, escolha a prioridade de entrega normal.
Ao receber uma mensagem de prioridade normal no Android que solicita uma sincronização de dados em segundo plano para seu aplicativo, você pode agendar uma tarefa com o WorkManager para lidar com isso quando a rede estiver disponível.
Prioridade máxima. O FCM tenta entregar mensagens de alta prioridade imediatamente, permitindo que o FCM desperte um dispositivo inativo quando necessário e execute algum processamento limitado (incluindo acesso à rede muito limitado). Mensagens de alta prioridade geralmente devem resultar na interação do usuário com seu aplicativo ou com suas notificações.
Usando mensagens de alta prioridade para Android
Mensagens de alta prioridade no Android destinam-se a conteúdo sensível ao tempo e visível ao usuário e devem resultar em notificações voltadas para o usuário. Se o FCM detectar um padrão em que as mensagens não resultam em notificações voltadas para o usuário, suas mensagens poderão perder a prioridade para a prioridade normal. O FCM usa sete dias de comportamento de mensagens para determinar se deve despriorizar as mensagens; ele faz essa determinação de forma independente para cada instância do seu aplicativo. Se, em resposta a mensagens de alta prioridade, as notificações forem exibidas de forma visível para o usuário, suas futuras mensagens de alta prioridade não serão despriorizadas. Isso se aplica quer a notificação seja exibida pelo SDK do FCM por meio de uma mensagem de notificação ou por uma notificação gerada pelo desenvolvedor por meio de uma mensagem de dados .
Medindo a despriorização de mensagens no Android
Mensagens individuais. Na entrega, você pode determinar se uma mensagem individual foi despriorizada ou não comparando sua prioridade entregue, de getPriority() , com sua prioridade original, de getOriginalPriority()
Todas as mensagens. A API FCM Aggregate Delivery Data pode informar qual porcentagem de todas as suas mensagens para Android está sendo despriorizada. Algumas mensagens podem ser omitidas dos relatórios de dados agregados, mas no geral devem fornecer uma visão global das taxas de despriorização das mensagens. Consulte nosso artigo sobre dados de entrega agregados para obter mais informações e exemplos de código para consultar a API; também pode ser explorado no API Explorer .
Solução de problemas
Certifique-se de que a instância do seu aplicativo tenha notificações ativadas. Se o usuário tiver desativado a permissão de notificação do seu aplicativo, nenhuma de suas notificações será postada e, como resultado, suas mensagens serão despriorizadas. Você deve verificar se as notificações estão habilitadas antes de enviar mensagens de alta prioridade para uma instância do aplicativo.
Não ligue para casa antes de postar uma notificação. Como uma pequena parte da população móvel Android está em redes de alta latência, evite abrir uma conexão com seus servidores antes de exibir uma notificação. Chamar de volta para o servidor antes do final do tempo de processamento permitido pode ser arriscado para usuários em redes de alta latência. Em vez disso, inclua o conteúdo da notificação na mensagem do FCM e exiba-o imediatamente. Se precisar sincronizar conteúdo adicional do aplicativo no Android, você pode agendar uma tarefa com o WorkManager para lidar com isso em segundo plano.