একটি সাধারণ বিজ্ঞপ্তিতে সাধারণত একটি শিরোনাম, এক লাইন টেক্সট এবং ব্যবহারকারী প্রতিক্রিয়া হিসেবে যে অ্যাকশন নিতে পারেন তা অন্তর্ভুক্ত থাকে। আরও তথ্য প্রদান করতে, আপনি এই ডকুমেন্টে বর্ণনা করা একাধিক বিজ্ঞপ্তি টেমপ্লেটের মধ্যে একটি প্রয়োগ করে বড়, সম্প্রসারণযোগ্য বিজ্ঞপ্তি তৈরি করতে পারেন।
শুরু করতে, বিজ্ঞপ্তি তৈরি করুন-এ যেমন বর্ণনা করা হয়েছে সেই অনুযায়ী সব প্রাথমিক কন্টেন্ট সহ একটি বিজ্ঞপ্তি তৈরি করুন। তারপর, স্টাইল অবজেক্ট সহ setStyle() কল করুন এবং
প্রতিটি টেমপ্লেটের সাথে সম্পর্কিত তথ্য প্রদান করুন, যেমনটি নিম্নলিখিত
উদাহরণে দেখানো হয়েছে।
একটি বড় ছবি যোগ করুন
আপনার বিজ্ঞপ্তিতে ছবি যোগ করতে, NotificationCompat.BigPictureStyle-এর ইনস্ট্যান্স
setStyle()-এ পাস করুন।
var notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(com.example.compose.snippets.R.drawable.ic_logo) .setContentTitle("Title") .setContentText("Content text") .setStyle( NotificationCompat.BigPictureStyle() .bigPicture(bitmapImage) ) .build()
নিচের ছবিতে যেমন দেখানো হয়েছে, বিজ্ঞপ্তিটি আড়াল করা থাকলে, ছবিটি শুধুমাত্র থাম্বনেল হিসেবে দেখানোর জন্য,
setLargeIcon()
কল করুন এবং এটিতে ছবিটি পাস করুন। তারপর, BigPictureStyle.bigLargeIcon()
কল করুন এবং null পাস করুন যাতে বিজ্ঞপ্তি বড় করা হলে বড় আইকনটি
চলে যায়:
notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.ic_logo) .setContentTitle("Title") .setContentText("Content text") .setLargeIcon(Icon.createWithResource(context, R.drawable.dog)) .setStyle( NotificationCompat.BigPictureStyle() .bigPicture(bitmapImage) .bigLargeIcon(null as Bitmap?) ) .build()
NotificationCompat.BigPictureStyle ব্যবহার করে
একটি বিজ্ঞপ্তি।
টেক্সটের বড় ব্লক যোগ করুন
বিজ্ঞপ্তির বড় করা কন্টেন্ট এরিয়াতে টেক্সট দেখাতে
NotificationCompat.BigTextStyle প্রয়োগ করুন:
notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.ic_logo) .setContentTitle("Sender name") .setContentText("Email subject") .setLargeIcon(Icon.createWithResource(context, R.drawable.dog)) .setStyle( NotificationCompat.BigTextStyle() .bigText(someVeryLongMessage) ) .build()
NotificationCompat.BigTextStyle ব্যবহার করে
একটি বিজ্ঞপ্তি।
ইনবক্স-স্টাইল বিজ্ঞপ্তি তৈরি করুন
আপনি যদি একাধিক সংক্ষিপ্ত সারসংক্ষেপ লাইন যোগ করতে চান, যেমন ইনকামিং ইমেল থেকে স্নিপেট, তাহলে বিজ্ঞপ্তিতে NotificationCompat.InboxStyle প্রয়োগ করুন। এটি আপনাকে
কন্টেন্ট টেক্সটের একাধিক অংশ যোগ করতে দেয়, যার প্রতিটি এক লাইনে ছোট করা হয়,
NotificationCompat.BigTextStyle-এর মাধ্যমে প্রদান করা টেক্সটের একটি একটানা লাইনের
পরিবর্তে।
নতুন লাইন যোগ করতে, নিম্নলিখিত উদাহরণে দেখানো অনুযায়ী, addLine()-এ সর্বাধিক ছয়বার কল করুন। আপনি ছয় লাইনের বেশি যোগ করলে, শুধু প্রথম ছয়টি লাইন
দেখা যাবে।
notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.mail) .setContentTitle("5 New mails from Frank") .setContentText("Check them out") .setLargeIcon(bitmapImage) .setStyle( NotificationCompat.InboxStyle() .addLine("Re: Planning") .addLine("Delivery on its way") .addLine("Follow-up") ) .build()
ফলাফলটি নিচের ছবির মতো দেখাবে:
বিজ্ঞপ্তিতে কথোপকথন দেখুন
যেকোনও সংখ্যক ব্যক্তির মধ্যে পরপর মেসেজ দেখাতে
NotificationCompat.MessagingStyle প্রয়োগ করুন। এটি মেসেজিং অ্যাপের জন্য আদর্শ, কারণ এটি
প্রেরকের নাম এবং মেসেজের টেক্সট আলাদাভাবে ম্যানেজ করে প্রতিটি মেসেজের জন্য একটি সামঞ্জস্যপূর্ণ লেআউট প্রদান করে
এবং প্রতিটি মেসেজ একাধিক লাইন দীর্ঘ হতে পারে।
নতুন মেসেজ যোগ করতে, মেসেজের টেক্সট, মেসেজ পাওয়ার সময় এবং প্রেরকের নাম পাস করে addMessage() কল করুন। এছাড়াও, আপনি এই তথ্য একটি
NotificationCompat.MessagingStyle.Message অবজেক্ট হিসেবে পাস করতে পারেন, যেমনটি
নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
val message1 = NotificationCompat.MessagingStyle.Message( messages[0].text, messages[0].time, messages[0].sender ) val message2 = NotificationCompat.MessagingStyle.Message( messages[1].text, messages[1].time, messages[1].sender ) notification = NotificationCompat.Builder(context, CHANNEL_ID) .setSmallIcon(R.drawable.ic_logo) .setStyle( NotificationCompat.MessagingStyle(Person.Builder().setName("Me").build()) .addMessage(message1) .addMessage(message2) ) .build()
NotificationCompat.MessagingStyle ব্যবহার করে
একটি বিজ্ঞপ্তি।
NotificationCompat.MessagingStyle ব্যবহার করার সময়, setContentTitle() এবং setContentText()-এর জন্য দেওয়া যেকোনও ভ্যালু উপেক্ষা করা হয়।
কথোপকথনের উপরে দেখা যাবে এমন একটি শিরোনাম যোগ করতে আপনি setConversationTitle()-কে বলতে পারেন। এটি গ্রুপের ব্যবহারকারীর তৈরি করা নাম হতে পারে অথবা, যদি এটির
কোনও নির্দিষ্ট নাম না থাকে, তাহলে কথোপকথনে অংশগ্রহণকারীদের একটি তালিকা।
এক-এক করে চ্যাটের জন্য কথোপকথনের শীর্ষক সেট করবেন না, কারণ সিস্টেম এই ফিল্ডের অস্তিত্বকে
একটি ইঙ্গিত হিসেবে ব্যবহার করে যে কথোপকথনটি একটি গ্রুপ।
এই স্টাইল শুধুমাত্র Android 7.0 (API লেভেল ২৪) এবং তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসে প্রযোজ্য।
কম্প্যাটিবিলিটি লাইব্রেরি (NotificationCompat) ব্যবহার করার সময়, আগে
দেখানো উদাহরণ অনুযায়ী, MessagingStyle সহ বিজ্ঞপ্তি অটোমেটিক
একটি কাজ করে এমন এক্সপ্যান্ডেড বিজ্ঞপ্তি স্টাইলে ফিরে যায়।
চ্যাট কথোপকথনের জন্য এই ধরনের বিজ্ঞপ্তি তৈরি করার সময়, সরাসরি উত্তর দেওয়ার অ্যাকশন যোগ করুন।
মিডিয়া কন্ট্রোল সহ বিজ্ঞপ্তি তৈরি করুন
মিডিয়া প্লেব্যাক কন্ট্রোল ও ট্র্যাকের তথ্য দেখাতে
MediaStyleNotificationHelper.MediaStyle প্রয়োগ করুন।
কনস্ট্রাক্টরে আপনার সংশ্লিষ্ট MediaSession উল্লেখ করুন। এটি Android-কে
আপনার মিডিয়া সম্পর্কে সঠিক তথ্য দেখানোর অনুমতি দেয়।
সর্বাধিক পাঁচটি আইকন বোতাম দেখাতে addAction() সর্বাধিক পাঁচবার কল করুন।
অ্যালবাম আর্টওয়ার্ক সেট করতে setLargeIcon() কল করুন।
অন্যান্য বিজ্ঞপ্তি স্টাইলের মতো নয়, MediaStyle আপনাকে তিনটি অ্যাকশন বোতাম নির্দিষ্ট করে
সংক্ষিপ্ত-সাইজের কন্টেন্ট ভিউ পরিবর্তন করতে দেয়, যা সংক্ষিপ্ত ভিউতেও
দেখা যায়। এটি করতে, অ্যাকশন বোতামের ইন্ডেক্স
setShowActionsInCompactView()-এ প্রদান করুন।
মিডিয়া কন্ট্রোল সহ বিজ্ঞপ্তি কীভাবে তৈরি করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
notification = NotificationCompat.Builder(context, CHANNEL_ID) // Show controls on lock screen even when user hides sensitive content. .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setSmallIcon(com.example.compose.snippets.R.drawable.play) // Add media control buttons that invoke intents in your media service .addAction(R.drawable.previous, "Previous", null /* Add valid intent */) // #0 .addAction(R.drawable.pause, "Pause", null /* Add valid intent */) // #1 .addAction(R.drawable.next, "Next", null /* Add valid intent */) // #2 // Apply the media style template. .setStyle(MediaStyleNotificationHelper.MediaStyle(mediaSession) .setShowActionsInCompactView(1 /* #1: pause button */)) .setContentTitle("Wonderful music") .setContentText("My Awesome Band") .setLargeIcon(bitmapImage) .build()
MediaStyleNotificationHelper.MediaStyle ব্যবহার করে
একটি বিজ্ঞপ্তি।
অতিরিক্ত রিসোর্স
MediaStyle এবং
বড় করা যায় এমন বিজ্ঞপ্তি সম্পর্কে আরও তথ্যের জন্য নিম্নলিখিত রেফারেন্স দেখুন।