Histórico de notificações

O histórico de notificações é uma tela do dispositivo em que os usuários podem ver notificações adiadas, algumas notificações descartadas recentemente e um histórico do último dia de notificações. É um recurso opcional para OEMs implementarem. Não há impacto nos SoCs ou nas operadoras.

O histórico de notificações destina-se a estes casos de uso:

  • Dispensa acidental: você dispensou uma notificação acidentalmente e quer conferir o que ela era.
  • Notificações adiadas: você adicionou uma notificação à lista de espera, mas quer verificar antes do fim do período de adiamento.
  • Solução de problemas: você acha que perdeu uma notificação. Você confere o histórico de notificações para saber se houve uma notificação e se ela fez um som. Caso não a encontre, verifique se uma notificação foi bloqueada. Você pode mudar as configurações de notificação no histórico de notificações.
  • Gerenciamento de notificações: você quer mudar a forma como as notificações interruptivas são exibidas, então você usa o histórico de notificações porque ele oferece uma fatia realista da carga diária de notificações, o que facilita entender o escopo das suas mudanças para alertas, bloqueios etc.

As implementações de referência desses componentes do histórico de notificações estão disponíveis:

  • Configurações: packages/apps/Settings/src/com/android/settings/notification/history
  • Servidor do sistema: com.android.server.notification.NotificationHistory.*.java

Estas são as principais etapas para implementar o histórico de notificações:

  • Grave eventos de notificação no registro.
  • Adicione pontos de entrada ao registro e a configuração para ativá-lo e desativá-lo.
  • Implementar a tela "Histórico de notificações".

Os usuários podem desativar o histórico de notificações. Quando ele está desativado, todos os itens do histórico são excluídos e nenhum item é gravado no registro.

É possível definir o número de dias em que as notificações aparecem no histórico de notificações usando a constante HISTORY_RETENTION_DAYS na classe NotificationHistoryDatabase. Você também pode modificar quais seções aparecem na tela "Histórico de notificações" e como os dados são apresentados.

O período de armazenamento padrão do histórico de notificações é de 24 horas.

Esses testes de unidade são fornecidos para cada componente do código:

  • Testes de unidade do servidor do sistema: FrameworksUiServicesTests
  • Testes de unidade de configurações: make -j64 RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.notification"