सूचना वाले बैज में बदलाव करना

Android 8.0 (एपीआई लेवल 26) से, लॉन्चर आइकॉन पर सूचना बैज दिखते हैं. इन्हें सूचनाएं बताने वाले डॉट भी कहा जाता है. ये तब दिखते हैं, जब उस ऐप्लिकेशन में कोई सूचना चालू हो. उपयोगकर्ता, सूचनाओं के साथ-साथ किसी भी ऐप्लिकेशन के शॉर्टकट को देखने के लिए, ऐप्लिकेशन के आइकॉन को दबाकर रख सकते हैं, जैसा कि पहली इमेज में दिखाया गया है.

ये बिंदु, उन लॉन्चर ऐप्लिकेशन में डिफ़ॉल्ट रूप से दिखते हैं जिनमें ये काम करते हैं. इसके लिए, आपके ऐप्लिकेशन को कुछ करने की ज़रूरत नहीं होती. हालांकि, ऐसा हो सकता है कि आपको सूचना वाले बिंदु न दिखें या आपको यह कंट्रोल करना हो कि वहां कौनसी सूचनाएं दिखें.

पहली इमेज. सूचना के बैज और दबाकर रखने पर दिखने वाला मेन्यू.

बैज की सुविधा बंद करना

कुछ मामलों में, सूचनाओं के लिए बैज का इस्तेमाल करना सही नहीं होता. इसलिए, NotificationChannel ऑब्जेक्ट पर setShowBadge(false) को कॉल करके, हर चैनल के लिए बैज की सुविधा बंद की जा सकती है.

उदाहरण के लिए, इन स्थितियों में सूचना वाले बैज बंद किए जा सकते हैं:

  • चल रही सूचनाएं: चल रही ज़्यादातर सूचनाएं, जैसे कि इमेज प्रोसेस करना, मीडिया चलाने के कंट्रोल या नेविगेशन के मौजूदा निर्देश, बैज के तौर पर काम के नहीं होते.
  • Calendar के रिमाइंडर: मौजूदा समय पर होने वाले इवेंट को बैज न दें.
  • घड़ी या अलार्म से जुड़े इवेंट: मौजूदा अलार्म से जुड़ी सूचनाओं के लिए बैज से जुड़ी सूचनाएं पाने से बचें.

यहां दिए गए सैंपल कोड में, किसी सूचना चैनल के लिए बैज छिपाने का तरीका बताया गया है:

KotlinJava
val id = "my_channel_01"
val name = getString(R.string.channel_name)
val descriptionText = getString(R.string.channel_description)
val importance = NotificationManager.IMPORTANCE_LOW
val mChannel = NotificationChannel(id, name, importance).apply {
    description = descriptionText
    setShowBadge(false)
}
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(mChannel)
String id = "my_channel_01";
CharSequence name = getString(R.string.channel_name);
String description = getString(R.string.channel_description);
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.setDescription(description);
mChannel.setShowBadge(false);

NotificationManager notificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(mChannel);

सूचनाओं की संख्या को पसंद के मुताबिक सेट करना

डिफ़ॉल्ट रूप से, हर सूचना से टच करके रखें मेन्यू में दिखने वाली संख्या बढ़ती है, जैसा कि पहले चित्र में दिखाया गया है. हालांकि, अपने ऐप्लिकेशन के लिए इस संख्या को बदला जा सकता है. उदाहरण के लिए, अगर एक से ज़्यादा नए मैसेज दिखाने के लिए सिर्फ़ एक सूचना का इस्तेमाल किया जा रहा है, लेकिन आपको कुल नए मैसेज की संख्या दिखानी है, तो यह सुविधा काम की हो सकती है.

अपनी पसंद का नंबर सेट करने के लिए, सूचना पर setNumber() दबाएं, जैसा कि यहां दिखाया गया है:

KotlinJava
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setNumber(messageCount)
        .build()
Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setNumber(messageCount)
        .build();

सूचना के मेन्यू आइकॉन को दबाकर रखने की सुविधा में बदलाव करना

टच करके रखने पर दिखने वाले मेन्यू में, सूचना से जुड़ा बड़ा या छोटा आइकॉन दिखता है. हालांकि, ऐसा तब ही होता है, जब सूचना उपलब्ध हो. डिफ़ॉल्ट रूप से, सिस्टम बड़ा आइकॉन दिखाता है. हालांकि, छोटा आइकॉन दिखाने के लिए, Notification.Builder.setBadgeIconType() को कॉल करें और BADGE_ICON_SMALL कॉन्स्टेंट को पास करें.

KotlinJava
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
        .build()
Notification notification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setContentTitle("New Messages")
        .setContentText("You've received 3 new messages.")
        .setSmallIcon(R.drawable.ic_notify_status)
        .setBadgeIconType(NotificationCompat.BADGE_ICON_SMALL)
        .build();

डुप्लीकेट शॉर्टकट छिपाना

अगर आपका ऐप्लिकेशन ऐसी सूचना दिखाता है जो ऐप्लिकेशन के शॉर्टकट की डुप्लीकेट है, तो सूचना चालू होने के दौरान, setShortcutId() को कॉल करके, शॉर्टकट को कुछ समय के लिए छिपाया जा सकता है.

सूचनाओं का इस्तेमाल करने वाले ज़्यादा सैंपल कोड के लिए, SociaLite का सैंपल ऐप्लिकेशन देखें.