19

通知バーに表示されている別のアプリケーションからの通知を削除したい。それは可能ですか?NotificationManager.cancelAll();私の知る限り、呼び出し元のアプリケーションによって表示される通知のみをキャンセルします。

なぜ私はこれをしたいのですか?

Web ページ経由で SMS を読み取って送信するアプリケーションがあり、このアプリケーションを Handcent SMS などの既存の SMS アプリケーションと共存させたいと考えています。私がそれを機能させたいのは、Webページを介して新しく受信したSMSを読み取るときに、新しいSMSが読み取られたため、Handcent SMSによって表示される新しいSMS通知をキャンセルしたいということです. SMS を既読としてマークしています。Handcent SMS を開くと、Handcent SMS はそれを既読として認識しますが、実際の SMS をクリックするまで通知は表示されたままです。

2 つのシナリオがあります。番号 1:

  1. Android デバイスが SMS を受信します。
  2. Handcent SMS で通知が表示されます。
  3. ユーザーはデバイスで SMS を読み取ります。
  4. Handcent SMS は通知を削除し、SMS を既読としてマークします。

シナリオ 2:

  1. Android デバイスが SMS を受信します。
  2. Handcent SMS で通知が表示されます。
  3. ユーザーは、Web インターフェイスを介して SMS を読み取ります。
  4. 私のアプリケーションは、Handcent SMS によって表示された新しい SMS 通知をクリアし、SMS を既読としてマークします。

これは可能ですか?

4

3 に答える 3

17

Android 4.3 以降、どのアプリからの通知もキャンセルできるようになりました。

NotificationListenerServiceアプリを として登録してから、 を呼び出しNotificationListenerService.cancelNotification(String pkg, String tag, int id)て 1 つの通知をキャンセルする必要があります。

于 2013-07-28T16:45:48.897 に答える
8

NotificationListenerService を使用して通知を閉じることができます。

public class NotificationListener extends NotificationListenerService {

    @Override
    public void onNotificationPosted(StatusBarNotification sbn) {
      cancelNotification(sbn.getKey());
    }
}

アプリケーションには BIND_NOTIFICATION_LISTENER_SERVICE 権限が必要です。 https://developer.android.com/reference/android/service/notification/NotificationListenerService.html

于 2016-11-12T10:40:18.143 に答える
4

NotificationManagerを使用して、独自の通知をキャンセルできます。
ただし、他のアプリの通知をキャンセルすることはできません。これは不可能です。

于 2011-03-08T18:00:05.443 に答える