সময়-সংবেদনশীল বিজ্ঞপ্তিগুলি প্রদর্শন করুন

আপনার অ্যাপটিকে কিছু পরিস্থিতিতে অবিলম্বে ব্যবহারকারীর দৃষ্টি আকর্ষণ করতে হতে পারে, যেমন একটি চলমান অ্যালার্ম বা একটি ইনকামিং কল৷ Android 9 (API লেভেল 28) বা তার আগের ডিভাইসগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে, অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন আপনি একটি অ্যাক্টিভিটি চালু করে এটি পরিচালনা করতে পারেন। Android 10 (API লেভেল 29) থেকে Android 13 (API লেভেল 33) চলমান ডিভাইসগুলিতে কীভাবে এই আচরণটি অর্জন করা যায় তা এই নথিটি দেখায়।

POST_NOTIFICATIONS অনুমতি যোগ করুন

Android 13 থেকে শুরু করে, আপনার AndroidManifest.xml ফাইলে নিম্নলিখিত লাইন যোগ করুন:

<manifest ...>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <application ...>
        ...
    </application>
</manifest>

একবার আপনার এটি হয়ে গেলে, আপনি একটি বিজ্ঞপ্তি চ্যানেল তৈরি করতে পারেন।

একটি বিজ্ঞপ্তি চ্যানেল তৈরি করুন

আপনার বিজ্ঞপ্তিগুলি সঠিকভাবে প্রদর্শন করতে একটি বিজ্ঞপ্তি চ্যানেল তৈরি করুন এবং ব্যবহারকারীকে অ্যাপ সেটিংসে বিজ্ঞপ্তিগুলি পরিচালনা করতে দিন৷ বিজ্ঞপ্তি চ্যানেল সম্পর্কে আরও তথ্যের জন্য, বিজ্ঞপ্তি চ্যানেল তৈরি এবং পরিচালনা দেখুন।

আপনার Application ক্লাসের onCreate পদ্ধতিতে আপনার বিজ্ঞপ্তি চ্যানেলগুলি তৈরি করুন:

কোটলিন

class DACapp : 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)
    }
}

ব্যবহারকারী যখন প্রথমবার আপনার অ্যাপ চালায়, তখন তারা আপনার অ্যাপের অ্যাপ তথ্য সিস্টেম স্ক্রিনে চিত্র 1-এর মতো কিছু দেখতে পায়:

অ্যাপের তথ্য, আপনার অ্যাপের বিজ্ঞপ্তি স্ক্রিন দেখানো একটি ছবি।
চিত্র 1. অ্যাপের সিস্টেম সেটিংসের অ্যাপ তথ্য স্ক্রিনে বিজ্ঞপ্তি বিভাগ।

বিজ্ঞপ্তি অনুমতি পরিচালনা করুন

Android 13 থেকে শুরু করে, ব্যবহারকারীদের বিজ্ঞপ্তি দেখানোর আগে বিজ্ঞপ্তির অনুমতির অনুরোধ করুন।

ন্যূনতম বাস্তবায়ন এই মত দেখায়:

কোটলিন

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 চালায়, Request permission বোতামে ট্যাপ করলে চিত্র 2-এ দেখানো ডায়ালগটি ট্রিগার হয়:

অনুমতি অনুরোধের ডায়ালগ দেখানো একটি ছবি
চিত্র 2. বিজ্ঞপ্তি অনুমতি অনুরোধের জন্য সিস্টেম ডায়ালগ।

ব্যবহারকারী অনুমতির অনুরোধ গ্রহণ করলে, অ্যাপের অ্যাপ তথ্য বিভাগটি চিত্র 3-এর মতো দেখায়:

বিজ্ঞপ্তি অনুমতি অনুরোধ মঞ্জুর করার পরে অ্যাপ তথ্য স্ক্রীন দেখানো একটি চিত্র
চিত্র 3. বিজ্ঞপ্তি অনুমতি দেওয়া হয়েছে।

একটি উচ্চ-অগ্রাধিকার বিজ্ঞপ্তি তৈরি করুন

বিজ্ঞপ্তি তৈরি করার সময়, একটি বর্ণনামূলক শিরোনাম এবং বার্তা অন্তর্ভুক্ত করুন।

নিম্নলিখিত উদাহরণে একটি বিজ্ঞপ্তি রয়েছে:

কোটলিন

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(666, notificationBuilder.build())
}

ব্যবহারকারীর কাছে বিজ্ঞপ্তি প্রদর্শন করুন

showNotification() ফাংশন কল করা বিজ্ঞপ্তিটিকে নিম্নরূপ ট্রিগার করে:

কোটলিন

Button(onClick = { showNotification() }) {
    Text(text = "Show notification")
}

এই উদাহরণে বিজ্ঞপ্তিটি চিত্র 4 এর মত দেখাচ্ছে:

একটি উচ্চ অগ্রাধিকার বিজ্ঞপ্তি দেখানো একটি চিত্র
চিত্র 4. একটি উচ্চ-অগ্রাধিকার বিজ্ঞপ্তি।

চলমান বিজ্ঞপ্তি

আপনি যখন ব্যবহারকারীর কাছে আপনার বিজ্ঞপ্তি প্রদর্শন করেন, তখন তারা আপনার অ্যাপের সতর্কতা বা অনুস্মারক স্বীকার বা খারিজ করতে পারে। উদাহরণস্বরূপ, ব্যবহারকারী একটি ইনকামিং ফোন কল গ্রহণ বা প্রত্যাখ্যান করতে পারেন।

যদি আপনার বিজ্ঞপ্তি একটি চলমান হয়, যেমন একটি ইনকামিং ফোন কল, তাহলে বিজ্ঞপ্তিটিকে একটি ফোরগ্রাউন্ড পরিষেবার সাথে সংযুক্ত করুন৷ নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে একটি অগ্রভাগের পরিষেবার সাথে সম্পর্কিত একটি বিজ্ঞপ্তি প্রদর্শন করতে হয়:

কোটলিন

// Provide a unique integer for the "notificationId" of each notification.
startForeground(notificationId, notification)

জাভা

// Provide a unique integer for the "notificationId" of each notification.
startForeground(notificationId, notification);
,

আপনার অ্যাপটিকে কিছু পরিস্থিতিতে অবিলম্বে ব্যবহারকারীর দৃষ্টি আকর্ষণ করতে হতে পারে, যেমন একটি চলমান অ্যালার্ম বা একটি ইনকামিং কল৷ Android 9 (API লেভেল 28) বা তার আগের ডিভাইসগুলিকে লক্ষ্য করে এমন অ্যাপগুলিতে, অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন আপনি একটি অ্যাক্টিভিটি চালু করে এটি পরিচালনা করতে পারেন। Android 10 (API লেভেল 29) থেকে Android 13 (API লেভেল 33) চলমান ডিভাইসগুলিতে কীভাবে এই আচরণটি অর্জন করা যায় তা এই নথিটি দেখায়।

POST_NOTIFICATIONS অনুমতি যোগ করুন

Android 13 থেকে শুরু করে, আপনার AndroidManifest.xml ফাইলে নিম্নলিখিত লাইন যোগ করুন:

<manifest ...>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <application ...>
        ...
    </application>
</manifest>

একবার আপনার এটি হয়ে গেলে, আপনি একটি বিজ্ঞপ্তি চ্যানেল তৈরি করতে পারেন।

একটি বিজ্ঞপ্তি চ্যানেল তৈরি করুন

আপনার বিজ্ঞপ্তিগুলি সঠিকভাবে প্রদর্শন করতে একটি বিজ্ঞপ্তি চ্যানেল তৈরি করুন এবং ব্যবহারকারীকে অ্যাপ সেটিংসে বিজ্ঞপ্তিগুলি পরিচালনা করতে দিন৷ বিজ্ঞপ্তি চ্যানেল সম্পর্কে আরও তথ্যের জন্য, বিজ্ঞপ্তি চ্যানেল তৈরি এবং পরিচালনা দেখুন।

আপনার Application ক্লাসের onCreate পদ্ধতিতে আপনার বিজ্ঞপ্তি চ্যানেলগুলি তৈরি করুন:

কোটলিন

class DACapp : 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)
    }
}

ব্যবহারকারী যখন প্রথমবার আপনার অ্যাপ চালায়, তখন তারা আপনার অ্যাপের অ্যাপ তথ্য সিস্টেম স্ক্রিনে চিত্র 1 এর মত কিছু দেখতে পায়:

অ্যাপের তথ্য, আপনার অ্যাপের বিজ্ঞপ্তি স্ক্রিন দেখানো একটি ছবি।
চিত্র 1. অ্যাপের সিস্টেম সেটিংসের অ্যাপ তথ্য স্ক্রিনে বিজ্ঞপ্তি বিভাগ।

বিজ্ঞপ্তি অনুমতি পরিচালনা করুন

Android 13 থেকে শুরু করে, ব্যবহারকারীদের বিজ্ঞপ্তি দেখানোর আগে বিজ্ঞপ্তির অনুমতির অনুরোধ করুন।

ন্যূনতম বাস্তবায়ন এই মত দেখায়:

কোটলিন

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 চালায়, Request permission বোতামে ট্যাপ করলে চিত্র 2-এ দেখানো ডায়ালগটি ট্রিগার হয়:

অনুমতি অনুরোধের ডায়ালগ দেখানো একটি ছবি
চিত্র 2. বিজ্ঞপ্তি অনুমতি অনুরোধের জন্য সিস্টেম ডায়ালগ।

ব্যবহারকারী অনুমতির অনুরোধ গ্রহণ করলে, অ্যাপের অ্যাপ তথ্য বিভাগটি চিত্র 3-এর মতো দেখায়:

বিজ্ঞপ্তি অনুমতি অনুরোধ মঞ্জুর করার পরে অ্যাপ তথ্য স্ক্রীন দেখানো একটি চিত্র
চিত্র 3. বিজ্ঞপ্তি অনুমতি দেওয়া হয়েছে।

একটি উচ্চ-অগ্রাধিকার বিজ্ঞপ্তি তৈরি করুন

বিজ্ঞপ্তি তৈরি করার সময়, একটি বর্ণনামূলক শিরোনাম এবং বার্তা অন্তর্ভুক্ত করুন।

নিম্নলিখিত উদাহরণে একটি বিজ্ঞপ্তি রয়েছে:

কোটলিন

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(666, notificationBuilder.build())
}

ব্যবহারকারীর কাছে বিজ্ঞপ্তি প্রদর্শন করুন

showNotification() ফাংশন কল করা বিজ্ঞপ্তিটিকে নিম্নরূপ ট্রিগার করে:

কোটলিন

Button(onClick = { showNotification() }) {
    Text(text = "Show notification")
}

এই উদাহরণে বিজ্ঞপ্তিটি চিত্র 4 এর মত দেখাচ্ছে:

একটি উচ্চ অগ্রাধিকার বিজ্ঞপ্তি দেখানো একটি চিত্র
চিত্র 4. একটি উচ্চ-অগ্রাধিকার বিজ্ঞপ্তি।

চলমান বিজ্ঞপ্তি

আপনি যখন ব্যবহারকারীর কাছে আপনার বিজ্ঞপ্তি প্রদর্শন করেন, তখন তারা আপনার অ্যাপের সতর্কতা বা অনুস্মারক স্বীকার বা খারিজ করতে পারে। উদাহরণস্বরূপ, ব্যবহারকারী একটি ইনকামিং ফোন কল গ্রহণ বা প্রত্যাখ্যান করতে পারেন।

যদি আপনার বিজ্ঞপ্তি একটি চলমান হয়, যেমন একটি ইনকামিং ফোন কল, তাহলে বিজ্ঞপ্তিটিকে একটি ফোরগ্রাউন্ড পরিষেবার সাথে সংযুক্ত করুন৷ নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে একটি অগ্রভাগের পরিষেবার সাথে সম্পর্কিত একটি বিজ্ঞপ্তি প্রদর্শন করতে হয়:

কোটলিন

// Provide a unique integer for the "notificationId" of each notification.
startForeground(notificationId, notification)

জাভা

// Provide a unique integer for the "notificationId" of each notification.
startForeground(notificationId, notification);