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

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

পুরনো ভার্সনে কাজ করার জন্য, একটি সারসংক্ষেপ বিজ্ঞপ্তি যোগ করুন যা সমস্ত আলাদা আলাদা বিজ্ঞপ্তি সংক্ষিপ্তসার করতে একা একা দেখা যায়। ইনবক্স-স্টাইল বিজ্ঞপ্তি হল এটি করার স্বাভাবিক উপায়।

আড়াল করা ও বড় করা বিজ্ঞপ্তি গ্রুপ
ছবি ১. আড়াল করা (উপরে) এবং বড় করা (নিচে) বিজ্ঞপ্তির গ্রুপ।

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

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

  • বাচ্চাকে আলাদাভাবে বিজ্ঞপ্তি দেখানোর সুবিধা আছে। যেমন:

    • প্রতিটি বিজ্ঞপ্তির জন্য নির্দিষ্ট অ্যাকশন থাকে।

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

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

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

বিজ্ঞপ্তি গ্রুপ তৈরি করতে, গ্রুপের জন্য একটি অনন্য শনাক্তকারী স্ট্রিং নির্ধারণ করুন। তারপর, গ্রুপে আপনি যে বিজ্ঞপ্তি চান তার জন্য, গ্রুপের নাম পাস করে 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()

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

বিজ্ঞপ্তির গ্রুপের জন্য সতর্কতা অন্য কোনও বিজ্ঞপ্তি দ্বারা ম্যানেজ করতে হলে, setGroupAlertBehavior কল করুন। যেমন, আপনি যদি চান যে শুধুমাত্র আপনার গ্রুপের সারসংক্ষেপের জন্য শব্দ হোক, তাহলে গ্রুপের সব বাচ্চার গ্রুপ অ্যালার্টের আচরণ GROUP_ALERT_SUMMARY হতে হবে। অন্যান্য বিকল্প হল GROUP_ALERT_ALL ও GROUP_ALERT_CHILDREN।

গ্রুপের সারসংক্ষেপ সেট করা

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

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

  • Android 7.0 এবং তার পরবর্তী ভার্সনে, সিস্টেম আপনার গ্রুপ সারসংক্ষেপ বিজ্ঞপ্তি নেস্টেড গ্রুপ বিজ্ঞপ্তি হিসেবে দেখায়, প্রতিটি গ্রুপ বিজ্ঞপ্তির টেক্সটের স্নিপেট দিয়ে লেবেল করা থাকে। গ্রুপের সারসংক্ষেপ বিজ্ঞপ্তিতে আপনার সেট করা টেক্সট এটি দেখায় না। ব্যবহারকারী বিজ্ঞপ্তির নেস্টেড গ্রুপ বড় করে গ্রুপের মধ্যে থাকা প্রতিটি বিজ্ঞপ্তি দেখতে পারবেন, যেমনটি ছবি ১-এ দেখানো হয়েছে।

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

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

অটোমেটিক গ্রুপিং

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

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