क्या यह संभव है कि सूचना को स्पष्ट रूप से साफ़ किया जाए?
मैंने इसके साथ कोशिश की, NotificationManager
लेकिन इसका काम नहीं हुआ। क्या कोई और तरीका है जो मैं कर सकता हूं?
क्या यह संभव है कि सूचना को स्पष्ट रूप से साफ़ किया जाए?
मैंने इसके साथ कोशिश की, NotificationManager
लेकिन इसका काम नहीं हुआ। क्या कोई और तरीका है जो मैं कर सकता हूं?
जवाबों:
अधिसूचना रद्द करने के लिए निम्नलिखित कोड का उपयोग करें:
NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancel(NOTIFICATION_ID);
इस कोड में सूचनाओं के लिए उसी आईडी का उपयोग किया जाता है। यदि आपके पास अलग-अलग सूचनाएं हैं जिन्हें रद्द करने की आवश्यकता है तो आपको उन आईडी को सहेजना होगा जिन्हें आपने अधिसूचना बनाने के लिए उपयोग किया था।
setContentText
रहा हूं) नहीं दिखाती हूं, हालांकि मैंने 2 को प्राथमिकता दी है। कोई सुझाव?
प्रेषक: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
उपयोगकर्ता द्वारा अधिसूचना विंडो से चयन करने पर स्थिति बार सूचना को साफ़ करने के लिए, अपनी सूचना ऑब्जेक्ट में "FLAG_AUTO_CANCEL" ध्वज जोड़ें। आप इसे कैंसिल (int) के साथ मैन्युअल रूप से क्लियर कर सकते हैं, इसे नोटिफिकेशन आईडी पास कर सकते हैं, या अपने सभी नोटिफिकेशन को कैंसल () के साथ क्लियर कर सकते हैं।
लेकिन डोनल सही है, आप केवल सूचनाओं को स्पष्ट कर सकते हैं जिन्हें आपने बनाया था।
चूंकि किसी ने भी इस पर एक कोड उत्तर पोस्ट नहीं किया है:
notification.flags = Notification.FLAG_AUTO_CANCEL;
.. और यदि आपके पास पहले से ही झंडे हैं, तो आप इस तरह से FLAG_AUTO_CANCEL कर सकते हैं:
notification.flags = Notification.FLAG_INSISTENT | Notification.FLAG_AUTO_CANCEL;
notifcation.flags |= Notification.FLAG_AUTO_CANCEL;
कृपया NotificationManager में प्रदान की गई डिफ़ॉल्ट विधि का प्रयास करें ।
NotificationManager.cancelAll()
सभी अधिसूचना को हटाने के लिए।
NotificationManager.cancel(notificationId)
विशेष अधिसूचना निकालने के लिए।
cancel
, तो cancel
विधि स्थिर नहीं है, इसलिए आपको NotificationManager
इस तरह के एक उदाहरण की आवश्यकता है : NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
फिर आप notificationManager.cancel(notificationId);
रोहित सुथार को कॉल कर सकते हैं जैसे उनके उत्तर में संदर्भित है। notificationId
बस वह आईडी है जिसमें आप गए थेnotificationManager.notify(notificationId, mNotification)
एपीआई स्तर 18 (जेलीबीन एमआर 2) से शुरू होकर आप नोटिफिकेशनलिस्टनर सेवा के माध्यम से अपने अलावा अन्य सूचनाएं रद्द कर सकते हैं।
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public class MyNotificationListenerService extends NotificationListenerService {...}
...
private void clearNotificationExample(StatusBarNotification sbn) {
myNotificationListenerService.cancelNotification(sbn.getPackageName(), sbn.getTag(), sbn.getId());
}
Notification mNotification = new Notification.Builder(this)
.setContentTitle("A message from: " + fromUser)
.setContentText(msg)
.setAutoCancel(true)
.setSmallIcon(R.drawable.app_icon)
.setContentIntent(pIntent)
.build();
.setAutoCancel (सही)
जब आप अधिसूचना पर क्लिक करते हैं, तो संबंधित गतिविधि खोलें और अधिसूचना बार से अधिसूचना हटा दें
यदि आप उस सेवा से अधिसूचना जनरेट कर रहे हैं जिसका उपयोग अग्रभूमि में शुरू किया गया है
startForeground(NOTIFICATION_ID, notificationBuilder.build());
फिर जारी कर रहा है
notificationManager.cancel(NOTIFICATION_ID);
अधिसूचना रद्द करना समाप्त नहीं करता है, और अधिसूचना अभी भी स्थिति पट्टी में दिखाई देती है। इस विशेष मामले में, आपको जारी करने की आवश्यकता होगी
stopForeground( true );
सेवा के भीतर से इसे पृष्ठभूमि मोड में वापस लाने के लिए और साथ ही सूचनाओं को रद्द करने के लिए। वैकल्पिक रूप से, आप इसे अधिसूचना रद्द किए बिना पृष्ठभूमि में धकेल सकते हैं और फिर अधिसूचना रद्द कर सकते हैं।
stopForeground( false );
notificationManager.cancel(NOTIFICATION_ID);
यदि आप NotificationCompat.Builder
(एक हिस्सा android.support.v4
) का उपयोग कर रहे हैं तो बस इसके ऑब्जेक्ट की विधि को कॉल करेंsetAutoCancel
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setAutoCancel(true);
कुछ लोग रिपोर्ट कर रहे थे कि setAutoCancel()
उनके लिए काम नहीं किया गया है, इसलिए आप इस तरह से भी कोशिश कर सकते हैं
builder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;
ध्यान दें कि विधि getNotification()
को हटा दिया गया है !!!
// Get a notification builder that's compatible with platform versions
// >= 4
NotificationCompat.Builder builder = new NotificationCompat.Builder(
this);
builder.setSound(soundUri);
builder.setAutoCancel(true);
यह काम करता है अगर आप एक अधिसूचना निर्माता का उपयोग कर रहे हैं ...
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager Nmang = (NotificationManager) getApplicationContext()
.getSystemService(ns);
Nmang .cancel(getIntent().getExtras().getInt("notificationID"));
अधिक संदर्भ के लिए यहां क्लिक करें http://androiddhina.blogspot.in/2015/01/how-to-clear-notification-in-android.html
वास्तव में API स्तर 18 से शुरू होने से पहले उत्तर दिया गया है कि आप NotificationListenerService का उपयोग करते हुए अपने स्वयं के अलावा अन्य ऐप्स के द्वारा अलग-अलग पोस्ट किए गए अधिसूचनाओं को रद्द कर सकते हैं, लेकिन यह दृष्टिकोण अब लॉलीपॉप पर काम नहीं करेगा, यहाँ Lillipop API को कवर करने वाले नोटिफिकेशन को हटाने का तरीका है।
if (Build.VERSION.SDK_INT < 21) {
cancelNotification(sbn.getPackageName(), sbn.getTag(), sbn.getId());
}
else {
cancelNotification(sbn.getKey());
}
cancelNotification
जो वह है?
NotificationListenerService कार्यान्वयन में उल्लिखित सभी सूचनाएं (यहां तक कि अन्य एप्लिकेशन सूचनाएं) 'NotificationListenerService' सुनने के माध्यम से हटाया जा सकता है
सेवा में आपको कॉल करना होगा cancelAllNotifications()
।
सेवा को आपके आवेदन के लिए सक्षम होना चाहिए:
'ऐप्स और सूचनाएं' -> 'विशेष एप्लिकेशन पहुंच' -> 'सूचनाएं पहुंच'।
इस कोड ने मेरे लिए काम किया:
public class ExampleReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
int notificationId = 1;
notificationManager.cancel(notificationId);
}
}
मैं सबसे मानना है कि हाल के और UPDATED AndroidX और पिछली संगतता के लिए। यह करने का सबसे अच्छा तरीका (कोटलिन और जावा) इस प्रकार किया जाना चाहिए:
NotificationManagerCompat.from(context).cancel(NOTIFICATION_ID)
या सभी सूचनाओं को रद्द करना है:
NotificationManagerCompat.from(context).cancelAll()
AndroidX या समर्थन पुस्तकालयों के लिए बनाया गया है।