কিছু পরিস্থিতিতে আপনার অ্যাপকে ব্যবহারকারীর মনোযোগ আকর্ষণ করতে হতে পারে, যেমন, অ্যালার্ম বা ইনকামিং কল। Android 9 (API লেভেল 28) বা তার আগের ভার্সনে রান করে এমন ডিভাইসে, অ্যাপ ব্যাকগ্রাউন্ডে থাকাকালীন অ্যাক্টিভিটি লঞ্চ করে আপনি এটি ম্যানেজ করতে পারেন। Android 10 (API লেভেল ২৯) (API লেভেল ২৯) এবং তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসে কীভাবে এই আচরণ অর্জন করা যায় তা এই ডকুমেন্ট থেকে জানা যায়।
POST_NOTIFICATIONS অনুমতি যোগ করুন
Android 13 (API লেভেল 33) থেকে শুরু করে, আপনার AndroidManifest.xml ফাইলে
POST_NOTIFICATIONS অনুমতি ঘোষণা করুন:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
অনুমতি ঘোষণা করার পরে, একটি বিজ্ঞপ্তি চ্যানেল তৈরি করুন।
বিজ্ঞপ্তি চ্যানেল তৈরি করুন
বিজ্ঞপ্তি দেখানোর জন্য একটি বিজ্ঞপ্তি চ্যানেল তৈরি করুন এবং ব্যবহারকারীদের সিস্টেম সেটিংসে বিজ্ঞপ্তি বিভাগগুলি পরিচালনা করতে দিন। বিজ্ঞপ্তি চ্যানেল সম্পর্কে আরও তথ্যের জন্য, বিজ্ঞপ্তি চ্যানেল তৈরি ও ম্যানেজ করুন দেখুন।
আপনার Application ক্লাসের onCreate পদ্ধতিতে আপনার বিজ্ঞপ্তি চ্যানেল তৈরি করুন:
class MyApplication : Application() { override fun onCreate() { super.onCreate() val channel = NotificationChannel( CHANNEL_ID, "High priority notifications", NotificationManager.IMPORTANCE_HIGH ) val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.createNotificationChannel(channel) } }
ব্যবহারকারী প্রথমবার অ্যাপ রান করলে, সিস্টেম অ্যাপের তথ্য স্ক্রিনে চ্যানেল দেখায়, যেমন ছবি ১-এ দেখানো হয়েছে:
বিজ্ঞপ্তির অনুমতি ম্যানেজ করুন
Android 13 থেকে শুরু করে, ব্যবহারকারীদের বিজ্ঞপ্তি দেখানোর আগে বিজ্ঞপ্তির অনুমতি চেয়ে অনুরোধ করুন।
নিম্নলিখিত কোডের উদাহরণ থেকে জানতে পারবেন যে Jetpack Compose-এ কীভাবে রানটাইম বিজ্ঞপ্তির অনুমতির জন্য অনুরোধ করতে হয়:
val permissionLauncher = rememberLauncherForActivityResult( contract = ActivityResultContracts.RequestPermission(), onResult = { hasNotificationPermission = it } ) // ... Button( onClick = { if (!hasNotificationPermission) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { permissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) } } }, ) { Text(text = "Request permission") }
Android ১৩ ও তার পরবর্তী ভার্সনে চলে এমন ডিভাইসে, অনুমতির জন্য অনুরোধ করুন বোতামে ট্যাপ করলে, ছবি ২-এ দেখানো সিস্টেম ডায়ালগ দেখা যায়:
ব্যবহারকারী অনুমতি দিলে, সিস্টেম অ্যাপের তথ্য স্ক্রিন আপডেট করে, যেমনটি চিত্র ৩-এ দেখানো হয়েছে:
উচ্চ অগ্রাধিকারযুক্ত বিজ্ঞপ্তি তৈরি করুন
আপনি যখন উচ্চ-অগ্রাধিকার বিজ্ঞপ্তি তৈরি করেন, তখন একটি স্পষ্ট শিরোনাম এবং মেসেজ টেক্সট প্রদান করুন। এছাড়াও, অত্যন্ত গুরুত্বপূর্ণ চ্যানেল ও অগ্রাধিকার লেভেল অ্যাসাইন করুন।
নিম্নলিখিত কোডের উদাহরণটি একটি উচ্চ-অগ্রাধিকার বিজ্ঞপ্তি কনফিগার করে এবং তৈরি করে:
private fun showNotification() { val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val notificationBuilder = NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.drawable.baseline_auto_awesome_24) .setContentTitle("HIGH PRIORITY") .setContentText("Check this dog puppy video NOW!") .setPriority(NotificationCompat.PRIORITY_HIGH) .setCategory(NotificationCompat.CATEGORY_RECOMMENDATION) notificationManager.notify(0, notificationBuilder.build()) }
ব্যবহারকারীকে বিজ্ঞপ্তি দেখান
showNotification ফাংশন কল করলে নিচে উল্লেখ করা বিজ্ঞপ্তি ট্রিগার হয়:
Button(onClick = { showNotification() }) { Text(text = "Show notification") }
ছবি ৪-এ সিস্টেমের মাধ্যমে দেখানো উচ্চ অগ্রাধিকারযুক্ত বিজ্ঞপ্তি দেখানো হয়েছে:
অনগোইং নোটিফিকেশন
আপনি ব্যবহারকারীকে বিজ্ঞপ্তি দেখালে, তিনি আপনার অ্যাপের সতর্কতা বা রিমাইন্ডার স্বীকার বা বাতিল করতে পারবেন। যেমন, ব্যবহারকারী ইনকামিং ফোন কল গ্রহণ বা প্রত্যাখ্যান করতে পারেন।
আপনার বিজ্ঞপ্তি যদি কোনও চলমান ব্যাকগ্রাউন্ড টাস্ককে উপস্থাপন করে, যেমন একটি অ্যাক্টিভ ফোন কল, তাহলে বিজ্ঞপ্তিটিকে একটি ফোরগ্রাউন্ড সার্ভিসের সাথে যুক্ত করুন। নিম্নলিখিত কোড স্নিপেট থেকে জানা যায় যে ফোরগ্রাউন্ড সার্ভিসের সাথে যুক্ত বিজ্ঞপ্তি কীভাবে দেখাতে হয়:
// Provide a unique integer for the "notificationId" of each notification. startForeground(notificationId, notification)
লাইভ আপডেট ব্যবহার করার কথা বিবেচনা করা
সময়-সংবেদনশীল চলমান বিজ্ঞপ্তিগুলি আরও বেশি দৃশ্যমানতা থেকে উপকৃত হতে পারে। সিস্টেম UI সারফেস জুড়ে স্ট্যাটাস সংক্রান্ত তথ্য দেখানোর জন্য, লাইভ আপডেট হিসেবে চলতে থাকা বিজ্ঞপ্তি প্রোমোট করার কথা বিবেচনা করুন।