कुछ मामलों में, आपके ऐप्लिकेशन को उपयोगकर्ता का ध्यान तुरंत खींचने की ज़रूरत पड़ सकती है. जैसे, अलार्म बजने या इनकमिंग कॉल आने पर. 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)
लाइव अपडेट इस्तेमाल करना
समय के हिसाब से ज़रूरी सूचनाओं को ज़्यादा लोगों को दिखाने से फ़ायदा मिल सकता है. सिस्टम के यूज़र इंटरफ़ेस (यूआई) की सभी जगहों पर स्टेटस की जानकारी दिखाने के लिए, जारी सूचनाओं को लाइव अपडेट के तौर पर प्रमोट करें.