2011-03-08 18 views
17

Bildirim çubuğunda gösterilen başka bir uygulamadan bildirimleri kaldırmak istiyorum. Mümkün mü? NotificationManager.cancelAll();, yalnızca bildiğim kadarıyla arama uygulaması tarafından gösterilen bildirimleri iptal eder.Bildirimi bildirim çubuğundan diğer uygulamalardan kaldırın

Bunu neden yapmak istiyorum?

Web sayfası aracılığıyla SMS okuyan ve gönderen bir uygulama var ve bu uygulamanın Handcent SMS gibi varolan SMS uygulamalarıyla birlikte çıkmasını istiyorum. Çalışmak istediğim şey, yeni alınan SMS'i web sayfası üzerinden okurken, yeni SMS'in okunması nedeniyle Handcent SMS tarafından gösterilen yeni SMS bildirimini iptal etmek istiyorum. SMS'i okundu olarak işaretliyorum ve Handcent SMS'i bir kez daha Handcent SMS'i açtığımda bunu okudum, ancak asıl SMS'i tıklayana kadar bildirim hala var.

İki senaryo vardır; sayı 1:

  1. Android cihaz bir SMS alır.
  2. El İle SMS ile bir bildirim gösterilir.
  3. Kullanıcı, aygıttaki SMS'i okur.
  4. SMS SMS bildirimi kaldırır ve SMS'i okundu olarak işaretler.

Senaryo 2:

  1. robot cihaz SMS alır.
  2. El İle SMS ile bir bildirim gösterilir.
  3. Kullanıcı, SMS'i web arayüzü üzerinden okur.
  4. Uygulamam Handcent SMS ile gösterilen yeni SMS bildirimini temizler ve SMS'i okundu olarak işaretler.

Bu mümkün mü?

+0

Neden bunu yapmak istersiniz? Bildirimlerimi kesinlikle çalacak bir uygulama istemezdim. –

+6

Amir, "Neden bunu yapmak istiyorum?" Bölümünün altında anlattım. :). – johboh

+0

@johboh Diğer uygulamaların bildirimlerini şimdi iptal edebilirsiniz. –

cevap

4

Kendi bildirimlerinizi NotificationManager kullanarak iptal edebilirsiniz.
Ancak diğer uygulamaların bildirimlerini iptal edemezsiniz, bu mümkün değildir.

+1

Biraz kafam karıştı. Kimin cevabı gerçekten doğru? Seninki mi yoksa @Oasis Feng mi? –

14

Android 4.3'ten itibaren, artık herhangi bir uygulamadan bildirimleri iptal edebilirsiniz.

Daha sonra, NotificationListenerService olarak uygulamanızı kayıt tek bildirim iptal etmek NotificationListenerService.cancelNotification(String pkg, String tag, int id) çağırmanız gerekir.

+2

NotificationListenerService örneğinin oluşturulması ve cancelNotification() yönteminin çağrılmasının NullPointerException ile sonuçlanacağını unutmayın.NotificationListenerService öğesini genişletmeli ve hizmeti başlatmalı, ardından bildirimi hizmetin içinden iptal etmelisiniz. – black

+0

Onu onNotificationPosted() içinde çalıştırdım, ancak iptal etmiyor. Lütfen bir göz atabilir misiniz? http://stackoverflow.com/questions/29803218/cant-cancel-notification-using-notificationlistenerservice –

+0

Bu yöntemin Lollipop'tan beri kullanımdan kaldırıldığını unutmayın, @QuadX aşağıdaki yanıtlarında belirtildiği gibi, imzanın değişmiş olduğunu unutmayın. –

İlgili konular