কিছু নির্দিষ্ট পরিস্থিতিতে আপনার অ্যাপকে হয়ত ব্যবহারকারীর মনোযোগ অবিলম্বে আকর্ষণ করতে হবে, যেমন, কোনও অ্যালার্ম চলছে বা কোনও ইনকামিং কল এসেছে। Android 9 (API লেভেল 28) বা এর আগের যেকোনও ভার্সনে চলে এমন ডিভাইসে, অ্যাপ ব্যাকগ্রাউন্ডে থাকাকালীন অ্যাক্টিভিটি লঞ্চ করে আপনি এটি ম্যানেজ করতে পারেন। Android 10 (API লেভেল 29) (API লেভেল 29) ও এর পরের যেকোনও ভার্সনে চলে এমন ডিভাইসে কীভাবে এই আচরণ অর্জন করা যায় তা এই ডকুমেন্টে দেখানো হয়েছে।
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 13 ও তার পরবর্তী যেকোনও ভার্সনে চলা ডিভাইসে, অনুমতির অনুরোধ করুন বোতামে ট্যাপ করলে, ২ নম্বর ছবিতে দেখানো সিস্টেম ডায়ালগ দেখা যায়:
ব্যবহারকারী অনুমতি দিলে, সিস্টেম অ্যাপের তথ্য স্ক্রিন আপডেট করে, যেমনটি ৩ নম্বর ছবিতে দেখানো হয়েছে:
উচ্চ অগ্রাধিকারযুক্ত বিজ্ঞপ্তি তৈরি করা
আপনি উচ্চ অগ্রাধিকারযুক্ত বিজ্ঞপ্তি তৈরি করলে, একটি স্পষ্ট শিরোনাম ও মেসেজ টেক্সট দিন। এছাড়াও, বেশি গুরুত্বের চ্যানেল ও অগ্রাধিকার লেভেল অ্যাসাইন করুন।
নিম্নলিখিত কোডের উদাহরণ একটি উচ্চ অগ্রাধিকারযুক্ত বিজ্ঞপ্তি কনফিগার ও তৈরি করে:
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 জুড়ে স্ট্যাটাস তথ্য দেখাতে, চলতে থাকা বিজ্ঞপ্তিগুলিকে লাইভ আপডেট হিসেবে প্রচার করার কথা বিবেচনা করুন।