समय के हिसाब से संवेदनशील सूचनाएं दिखाएं

कुछ स्थितियों में, आपके ऐप्लिकेशन को उपयोगकर्ता का ध्यान तुरंत खींचने की ज़रूरत पड़ सकती है. जैसे, अलार्म बजने या कॉल आने पर. Android 9 (एपीआई लेवल 28) या इससे पहले के वर्शन पर चलने वाले डिवाइसों पर, ऐप्लिकेशन के बैकग्राउंड में होने पर गतिविधि लॉन्च करके इस समस्या को ठीक किया जा सकता है. इस दस्तावेज़ में, Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, इस सुविधा को इस्तेमाल करने का तरीका बताया गया है.

POST_NOTIFICATIONS अनुमति जोड़ना

Android 13 (एपीआई लेवल 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)

लाइव अपडेट का इस्तेमाल करना

समय के हिसाब से ज़रूरी सूचनाओं को ज़्यादा लोगों तक पहुंचाने से फ़ायदा मिल सकता है. सिस्टम यूज़र इंटरफ़ेस (यूआई) की सभी सतहों पर स्टेटस की जानकारी दिखाने के लिए, चालू सूचनाओं को लाइव अपडेट के तौर पर प्रमोट करें.