বিজ্ঞপ্তির একটি গ্রুপ তৈরি করুন

Android 7.0 (API স্তর 24) থেকে শুরু করে, আপনি একটি গ্রুপে সম্পর্কিত বিজ্ঞপ্তিগুলি প্রদর্শন করতে পারেন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ প্রাপ্ত ইমেলগুলির জন্য বিজ্ঞপ্তিগুলি দেখায়, তবে নতুন ইমেল বার্তাগুলির জন্য সমস্ত বিজ্ঞপ্তি একই গ্রুপে রাখুন যাতে সেগুলি একসাথে ভেঙে যায়।

পুরানো সংস্করণগুলিকে সমর্থন করতে, একটি সারসংক্ষেপ বিজ্ঞপ্তি যোগ করুন যা সমস্ত পৃথক বিজ্ঞপ্তিগুলির সংক্ষিপ্তসারের জন্য একা প্রদর্শিত হয়৷ এটি প্রায়শই ইনবক্স-স্টাইল বিজ্ঞপ্তি দিয়ে করা হয়।

চিত্র 1. একটি ভেঙে পড়া (উপরের) এবং প্রসারিত (নীচে) বিজ্ঞপ্তি গ্রুপ।

আপনার ব্যবহারের ক্ষেত্রে নিম্নলিখিত সমস্ত শর্ত সত্য হলে বিজ্ঞপ্তি গোষ্ঠীগুলি ব্যবহার করুন:

  • শিশু বিজ্ঞপ্তিগুলি সম্পূর্ণ বিজ্ঞপ্তি এবং একটি গ্রুপ সারাংশের প্রয়োজন ছাড়াই পৃথকভাবে প্রদর্শিত হতে পারে।

  • পৃথকভাবে চাইল্ড নোটিফিকেশন সার্ফেস করার সুবিধা আছে। যেমন:

    • প্রতিটি বিজ্ঞপ্তির জন্য নির্দিষ্ট ক্রিয়া সহ সেগুলি কর্মযোগ্য।

    • ব্যবহারকারীর দেখার জন্য প্রতিটি বিজ্ঞপ্তিতে আরও তথ্য রয়েছে।

যদি আপনার বিজ্ঞপ্তিগুলি পূর্ববর্তী মানদণ্ডগুলি পূরণ না করে, তবে পরিবর্তে নতুন তথ্য সহ একটি বিদ্যমান বিজ্ঞপ্তি আপডেট করার বা একই কথোপকথনে একাধিক আপডেট দেখানোর জন্য একটি বার্তা-স্টাইল বিজ্ঞপ্তি তৈরি করার কথা বিবেচনা করুন৷

একটি গ্রুপ তৈরি করুন এবং এটিতে একটি বিজ্ঞপ্তি যোগ করুন

একটি বিজ্ঞপ্তি গ্রুপ তৈরি করতে, গ্রুপের জন্য একটি অনন্য শনাক্তকারী স্ট্রিং সংজ্ঞায়িত করুন। তারপরে, গ্রুপে আপনি যে প্রতিটি বিজ্ঞপ্তি চান তার জন্য, গ্রুপের নাম পাস করে setGroup() কল করুন। যেমন:

কোটলিন

val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL"

val newMessageNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_mail)
        .setContentTitle(emailObject.getSenderName())
        .setContentText(emailObject.getSubject())
        .setLargeIcon(emailObject.getSenderAvatar())
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build()

জাভা

String GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL";

Notification newMessageNotification = new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_mail)
        .setContentTitle(emailObject.getSenderName())
        .setContentText(emailObject.getSubject())
        .setLargeIcon(emailObject.getSenderAvatar())
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build();

ডিফল্টরূপে, বিজ্ঞপ্তিগুলি পোস্ট করার সময় অনুসারে সাজানো হয়, কিন্তু আপনি setSortKey() কল করে অর্ডার পরিবর্তন করতে পারেন।

যদি একটি বিজ্ঞপ্তির গোষ্ঠীর জন্য সতর্কতাগুলি একটি ভিন্ন বিজ্ঞপ্তি দ্বারা পরিচালনা করা আবশ্যক, setGroupAlertBehavior() কল করুন উদাহরণস্বরূপ, আপনি যদি চান যে আপনার গোষ্ঠীর শুধুমাত্র সারাংশই শব্দ করতে পারে, তবে গোষ্ঠীর সমস্ত শিশুদের অবশ্যই গ্রুপ সতর্কতা আচরণ GROUP_ALERT_SUMMARY থাকতে হবে। অন্যান্য বিকল্পগুলি হল GROUP_ALERT_ALL এবং GROUP_ALERT_CHILDREN

একটি গ্রুপ সারাংশ সেট করুন

গোষ্ঠীবদ্ধ বিজ্ঞপ্তিগুলিতে অবশ্যই একটি অতিরিক্ত বিজ্ঞপ্তি থাকতে হবে যা গোষ্ঠীর সারাংশ হিসাবে কাজ করে। গোষ্ঠীবদ্ধ বিজ্ঞপ্তিগুলি সক্ষম করতে, আপনাকে অবশ্যই একটি গোষ্ঠীর সারাংশ সেট করতে হবে৷ এই গোষ্ঠীর সারাংশে অবশ্যই গ্রুপের অন্যান্য বিজ্ঞপ্তিগুলির কিছু পাঠ্য অন্তর্ভুক্ত করতে হবে যাতে ব্যবহারকারীরা বুঝতে পারেন যে গ্রুপে কী রয়েছে৷ কিভাবে গ্রুপ সারাংশ প্রদর্শিত হবে Android সংস্করণের উপর নির্ভর করে:

  • 7.0 (API স্তর 24) এর চেয়ে কম Android সংস্করণগুলিতে, যা বিজ্ঞপ্তিগুলির একটি নেস্টেড গোষ্ঠী দেখাতে পারে না, সিস্টেমটি কেবলমাত্র আপনার গোষ্ঠীর সারাংশ বিজ্ঞপ্তি দেখায় এবং বাকিগুলিকে লুকিয়ে রাখে৷ ব্যবহারকারী আপনার অ্যাপ খুলতে গ্রুপ সারাংশ বিজ্ঞপ্তিতে ট্যাপ করতে পারেন।

  • অ্যান্ড্রয়েড 7.0 এবং উচ্চতর সংস্করণে, সিস্টেমটি আপনার গোষ্ঠীর সারাংশ বিজ্ঞপ্তিগুলিকে নেস্টেড গোষ্ঠীর বিজ্ঞপ্তি হিসাবে দেখায়, প্রতিটি গোষ্ঠীবদ্ধ বিজ্ঞপ্তি থেকে পাঠ্যের স্নিপেট সহ লেবেলযুক্ত। এটি গ্রুপ সারাংশ বিজ্ঞপ্তিতে আপনার সেট করা পাঠ্য প্রদর্শন করে না। ব্যবহারকারী গোষ্ঠীর স্বতন্ত্র বিজ্ঞপ্তিগুলি দেখতে বিজ্ঞপ্তিগুলির নেস্টেড গ্রুপকে প্রসারিত করতে পারে, যেমন চিত্র 1 এ দেখানো হয়েছে।

এমনকি যদি Android এর নতুন সংস্করণগুলি আপনার ডিজাইন করা গোষ্ঠীর সারাংশ পাঠ্য না দেখায়, তবে আপনাকে সর্বদা গোষ্ঠীবদ্ধ বিজ্ঞপ্তিগুলি সক্ষম করতে ম্যানুয়ালি একটি সারাংশ সেট করতে হবে ৷ গ্রুপ সারাংশের আচরণ কিছু ডিভাইসের ধরনে পরিবর্তিত হতে পারে, যেমন পরিধানযোগ্য। আপনার গ্রুপ সারাংশে সমৃদ্ধ সামগ্রী সেট করা সমস্ত ডিভাইস এবং সংস্করণে সেরা অভিজ্ঞতা প্রদান করতে সহায়তা করে।

একটি গ্রুপ সারাংশ যোগ করতে, নিম্নলিখিত হিসাবে এগিয়ে যান:

  1. গোষ্ঠীর বিবরণ সহ একটি নতুন বিজ্ঞপ্তি তৈরি করুন—প্রায়শই ইনবক্স-স্টাইল বিজ্ঞপ্তির মাধ্যমে সবচেয়ে ভালো হয়।

  2. setGroup() কল করে গ্রুপে সারসংক্ষেপ বিজ্ঞপ্তি যোগ করুন।

  3. setGroupSummary(true) কল করে গ্রুপ সারাংশ হিসাবে এটি ব্যবহার করা আবশ্যক।

নিম্নলিখিত কোড একটি গ্রুপ সারাংশ তৈরির একটি উদাহরণ দেখায়:

কোটলিন

// Use constant ID for notifications used as group summary.
val SUMMARY_ID = 0
val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL"

val newMessageNotification1 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_email_status)
        .setContentTitle(emailObject1.getSummary())
        .setContentText("You will not believe...")
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build()

val newMessageNotification2 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_email_status)
        .setContentTitle(emailObject2.getSummary())
        .setContentText("Please join us to celebrate the...")
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build()

val summaryNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
        .setContentTitle(emailObject.getSummary())
        // Set content text to support devices running API level < 24.
        .setContentText("Two new messages")
        .setSmallIcon(R.drawable.ic_notify_summary_status)
        // Build summary info into InboxStyle template.
        .setStyle(NotificationCompat.InboxStyle()
                .addLine("Alex Faarborg Check this out")
                .addLine("Jeff Chang Launch Party")
                .setBigContentTitle("2 new messages")
                .setSummaryText("janedoe@example.com"))
        // Specify which group this notification belongs to.
        .setGroup(GROUP_KEY_WORK_EMAIL)
        // Set this notification as the summary for the group.
        .setGroupSummary(true)
        .build()

NotificationManagerCompat.from(this).apply {
    notify(emailNotificationId1, newMessageNotification1)
    notify(emailNotificationId2, newMessageNotification2)
    notify(SUMMARY_ID, summaryNotification)
}

জাভা

// Use constant ID for notifications used as group summary.
int SUMMARY_ID = 0;
String GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL";

Notification newMessageNotification1 =
    new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_email_status)
        .setContentTitle(emailObject1.getSummary())
        .setContentText("You will not believe...")
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build();

Notification newMessageNotification2 =
    new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notify_email_status)
        .setContentTitle(emailObject2.getSummary())
        .setContentText("Please join us to celebrate the...")
        .setGroup(GROUP_KEY_WORK_EMAIL)
        .build();

Notification summaryNotification =
    new NotificationCompat.Builder(MainActivity.this, CHANNEL_ID)
        .setContentTitle(emailObject.getSummary())
        // Set content text to support devices running API level < 24.
        .setContentText("Two new messages")
        .setSmallIcon(R.drawable.ic_notify_summary_status)
        // Build summary info into InboxStyle template.
        .setStyle(new NotificationCompat.InboxStyle()
                .addLine("Alex Faarborg  Check this out")
                .addLine("Jeff Chang    Launch Party")
                .setBigContentTitle("2 new messages")
                .setSummaryText("janedoe@example.com"))
        // Specify which group this notification belongs to.
        .setGroup(GROUP_KEY_WORK_EMAIL)
        // Set this notification as the summary for the group.
        .setGroupSummary(true)
        .build();

NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(emailNotificationId1, newMessageNotification1);
notificationManager.notify(emailNotificationId2, newMessageNotification2);
notificationManager.notify(SUMMARY_ID, summaryNotification);

সারাংশ বিজ্ঞপ্তি আইডি অবশ্যই একই থাকতে হবে যাতে এটি শুধুমাত্র একবার পোস্ট করা হয় এবং সারাংশের তথ্য পরিবর্তন হলে আপনি পরে এটি আপডেট করতে পারেন। গ্রুপে পরবর্তী সংযোজনের ফলে বিদ্যমান সারাংশ আপডেট করতে হবে।

বিজ্ঞপ্তি ব্যবহার করে এমন নমুনা কোডের জন্য, Android বিজ্ঞপ্তির নমুনা দেখুন।

স্বয়ংক্রিয় গ্রুপিং

Android 7.0 (API স্তর 24) এবং উচ্চতর সংস্করণে, যদি আপনার অ্যাপটি চার বা তার বেশি বিজ্ঞপ্তি পাঠায় এবং একটি গোষ্ঠী কী বা গোষ্ঠীর সারাংশ নির্দিষ্ট না করে, তাহলে সিস্টেম স্বয়ংক্রিয়ভাবে সেগুলিকে একত্রে গোষ্ঠীভুক্ত করতে পারে। গোষ্ঠীবদ্ধ বিজ্ঞপ্তিগুলি স্বয়ংক্রিয়ভাবে কিছু গোষ্ঠীবদ্ধ বিজ্ঞপ্তি থেকে পাঠ্যের স্নিপেট সহ লেবেলযুক্ত একটি গোষ্ঠী সংক্ষিপ্ত বিজ্ঞপ্তি সহ প্রদর্শিত হয়। ব্যবহারকারী প্রতিটি স্বতন্ত্র বিজ্ঞপ্তি দেখতে এই সারাংশ বিজ্ঞপ্তিটি প্রসারিত করতে পারেন, যেমন ম্যানুয়ালি গোষ্ঠীবদ্ধ বিজ্ঞপ্তিগুলির সাথে।

স্বয়ংক্রিয় গ্রুপিং আচরণ কিছু ডিভাইসের ধরনে পরিবর্তিত হতে পারে। সমস্ত ডিভাইস এবং সংস্করণে সর্বোত্তম অভিজ্ঞতা প্রদানের জন্য, আপনি যদি জানেন যে বিজ্ঞপ্তিগুলিকে অবশ্যই গোষ্ঠীবদ্ধ করতে হবে, একটি গোষ্ঠী কী এবং গোষ্ঠীর সারাংশ নির্দিষ্ট করুন যাতে সেগুলিকে গোষ্ঠীভুক্ত করা হয়৷