É possível limpar uma notificação programaticamente?
Eu tentei com o, NotificationManager
mas não está funcionando. Existe alguma outra maneira de fazer isso?
android
notifications
Rahul
fonte
fonte
Respostas:
Use o seguinte código para cancelar uma Notificação:
Neste código existe sempre o mesmo id usado para notificações. Se você tiver notificações diferentes que precisam ser canceladas, você deve salvar os ids usados para criar a notificação.
fonte
setContentText
), embora eu defina a prioridade para 2. Alguma sugestão?De: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Mas Donal está certo, você só pode limpar as notificações que criou.
fonte
Já que ninguém postou uma resposta em código para isso:
.. e se você já tem sinalizadores, você pode OR FLAG_AUTO_CANCEL assim:
fonte
notifcation.flags |= Notification.FLAG_AUTO_CANCEL;
Tente o método padrão fornecido no NotificationManager .
NotificationManager.cancelAll()
para remover todas as notificações.NotificationManager.cancel(notificationId)
para remover uma notificação específica.fonte
cancel
método, ocancel
método não é estático, então você precisa de uma instânciaNotificationManager
como esta:NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Então você pode chamarnotificationManager.cancel(notificationId);
como Rohit Suthar referenciado em sua resposta.notificationId
é simplesmente o ID para o qual você passounotificationManager.notify(notificationId, mNotification)
A partir da API de nível 18 (Jellybean MR2), você pode cancelar notificações que não sejam as suas por meio de NotificationListenerService.
...
fonte
.setAutoCancel (true)
quando você clica na notificação, abre a atividade correspondente e remove a notificação da barra de notificação
fonte
Se você estiver gerando notificação de um serviço que é iniciado em primeiro plano usando
Em seguida, emitindo
não acaba cancelando a Notificação, e a notificação ainda aparece na barra de status. Neste caso específico, você precisará emitir
de dentro do serviço para colocá-lo de volta no modo de segundo plano e cancelar simultaneamente as notificações. Como alternativa, você pode colocá-lo em segundo plano sem que ele cancele a notificação e, em seguida, cancele a notificação.
fonte
Se você estiver usando
NotificationCompat.Builder
(uma parte deandroid.support.v4
), basta chamar o método de seu objetosetAutoCancel
Alguns caras relataram que
setAutoCancel()
não funcionou para eles, então você também pode tentar desta formaObserve que o método
getNotification()
está obsoleto !!!fonte
isso funciona se você estiver usando um construtor de notificação ...
fonte
para obter mais referências, clique aqui http://androiddhina.blogspot.in/2015/01/how-to-clear-notification-in-android.html
fonte
Na verdade, conforme respondido antes de começar com a API de nível 18, você pode cancelar notificações postadas por outros aplicativos diferentes do seu usando NotificationListenerService, mas essa abordagem não funcionará mais no Lollipop. Aqui está uma maneira de remover notificações que abrangem também a API Lillipop.
fonte
cancelNotification
que é?Todas as notificações (mesmo outras notificações de aplicativo) podem ser removidas ouvindo 'NotificationListenerService' conforme mencionado na Implementação de NotificationListenerService
No serviço você tem que ligar
cancelAllNotifications()
.O serviço deve ser habilitado para seu aplicativo através de:
'Aplicativos e notificações' -> 'Acesso especial a aplicativos' -> 'Acesso a notificações'.
fonte
este código funcionou para mim:
fonte
Acredito que o mais RECENTE e ATUALIZADO para AndroidX e compatibilidade com versões anteriores. A melhor maneira de fazer isso (Kotlin e Java) deve ser:
Ou para cancelar todas as notificações:
Feito para AndroidX ou bibliotecas de suporte.
fonte