একটি বিজ্ঞপ্তি ব্যাজ পরিবর্তন করুন

Android 8.0 (API লেভেল 26) দিয়ে শুরু করে, বিজ্ঞপ্তি ব্যাজগুলি—যা বিজ্ঞপ্তি ডট নামেও পরিচিত—একটি লঞ্চার আইকনে প্রদর্শিত হয় যখন সংশ্লিষ্ট অ্যাপের একটি সক্রিয় বিজ্ঞপ্তি থাকে। ব্যবহারকারীরা চিত্র 1-এ দেখানো যেকোন অ্যাপ শর্টকাট সহ বিজ্ঞপ্তিগুলি প্রকাশ করতে অ্যাপ আইকনটি স্পর্শ করে ধরে রাখতে পারেন।

এই বিন্দুগুলি ডিফল্টরূপে লঞ্চার অ্যাপ্লিকেশনগুলিতে প্রদর্শিত হয় যা তাদের সমর্থন করে এবং আপনার অ্যাপের করার দরকার নেই৷ যাইহোক, এমন পরিস্থিতি হতে পারে যেখানে আপনি টু নোটিফিকেশন ডটটি উপস্থিত হতে চান না বা আপনি ঠিক কোন বিজ্ঞপ্তিগুলি সেখানে উপস্থিত হবে তা নিয়ন্ত্রণ করতে চান৷

চিত্র 1. বিজ্ঞপ্তি ব্যাজ এবং টাচ অ্যান্ড হোল্ড মেনু।

ব্যাজিং অক্ষম করুন

এমন কিছু ক্ষেত্রে রয়েছে যেখানে ব্যাজগুলি আপনার বিজ্ঞপ্তিগুলির জন্য অর্থপূর্ণ নয়, তাই আপনি আপনার NotificationChannel অবজেক্টে setShowBadge(false) কল করে প্রতি-চ্যানেল ভিত্তিতে সেগুলিকে নিষ্ক্রিয় করতে পারেন৷

উদাহরণস্বরূপ, আপনি নিম্নলিখিত পরিস্থিতিতে বিজ্ঞপ্তি ব্যাজ অক্ষম করতে চাইতে পারেন:

  • চলমান বিজ্ঞপ্তি: বেশিরভাগ চলমান বিজ্ঞপ্তি, যেমন ইমেজ প্রসেসিং, মিডিয়া প্লেব্যাক কন্ট্রোল, বা বর্তমান নেভিগেশন নির্দেশাবলী, একটি ব্যাজ হিসাবে অর্থপূর্ণ নয়।
  • ক্যালেন্ডার অনুস্মারক: বর্তমান সময়ে ঘটে যাওয়া ব্যাজিং ইভেন্টগুলি এড়িয়ে চলুন।
  • ঘড়ি বা অ্যালার্ম ইভেন্ট: বর্তমান অ্যালার্ম সম্পর্কিত ব্যাজিং বিজ্ঞপ্তিগুলি এড়িয়ে চলুন।

নিম্নলিখিত নমুনা কোডটি একটি বিজ্ঞপ্তি চ্যানেলের জন্য ব্যাজগুলি কীভাবে লুকাতে হয় তা প্রদর্শন করে:

কোটলিন

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);

কাস্টম বিজ্ঞপ্তি গণনা সেট করুন

ডিফল্টরূপে, প্রতিটি বিজ্ঞপ্তি টাচ অ্যান্ড হোল্ড মেনুতে প্রদর্শিত একটি সংখ্যা বৃদ্ধি করে, যেমন চিত্র 1 এ দেখানো হয়েছে, কিন্তু আপনি আপনার অ্যাপের জন্য এই নম্বরটিকে ওভাররাইড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি একাধিক নতুন বার্তা উপস্থাপন করতে শুধুমাত্র একটি বিজ্ঞপ্তি ব্যবহার করেন তবে মোট নতুন বার্তার সংখ্যাকে প্রতিনিধিত্ব করতে চান তাহলে এটি কার্যকর হতে পারে।

একটি কাস্টম নম্বর সেট করতে, বিজ্ঞপ্তিতে setNumber() কল করুন, এখানে দেখানো হয়েছে:

কোটলিন

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 ধ্রুবকটিতে পাস করতে পারেন৷

কোটলিন

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() কল করে বিজ্ঞপ্তিটি সক্রিয় থাকাকালীন অস্থায়ীভাবে শর্টকাটটি লুকিয়ে রাখতে পারেন৷

বিজ্ঞপ্তি ব্যবহার করে এমন আরও নমুনা কোডের জন্য, সোশিয়ালাইট নমুনা অ্যাপটি দেখুন।