कुछ मामलों में, आपके ऐप्लिकेशन को उपयोगकर्ता का ध्यान तुरंत खींचने की ज़रूरत पड़ सकती है. जैसे, अलार्म बजने या इनकमिंग कॉल आने पर. Android 9 (एपीआई लेवल 28) या इससे पहले के वर्शन पर चलने वाले ऐप्लिकेशन को टारगेट करने वाले ऐप्लिकेशन में, बैकग्राउंड में ऐप्लिकेशन के चालू रहने के दौरान गतिविधि लॉन्च करके इसे मैनेज किया जा सकता है. इस दस्तावेज़ में, Android 10 (एपीआई लेवल 29) से लेकर Android 13 (एपीआई लेवल 33) तक के वर्शन वाले डिवाइसों पर, इस सुविधा को चालू करने का तरीका बताया गया है.
POST_NOTIFICATIONS अनुमति जोड़ें
Android 13 और इसके बाद के वर्शन में, अपनी AndroidManifest.xml
फ़ाइल में यह लाइन जोड़ें:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <application ...> ... </application> </manifest>
इसके बाद, सूचना चैनल बनाया जा सकता है.
सूचना चैनल बनाना
सूचनाएं सही तरीके से दिखाने के लिए, सूचना चैनल बनाएं. साथ ही, उपयोगकर्ता को ऐप्लिकेशन की सेटिंग में जाकर सूचनाएं मैनेज करने की अनुमति दें. सूचना चैनलों के बारे में ज़्यादा जानने के लिए, सूचना चैनल बनाना और मैनेज करना लेख पढ़ें.
Application
क्लास के onCreate
तरीके से, सूचना चैनल बनाएं:
Kotlin
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) } }
जब कोई उपयोगकर्ता आपके ऐप्लिकेशन को पहली बार चलाता है, तो उसे आपके ऐप्लिकेशन की ऐप्लिकेशन की जानकारी सिस्टम स्क्रीन पर, पहली इमेज जैसी जानकारी दिखती है:
सूचनाओं की अनुमतियां मैनेज करना
Android 13 में, उपयोगकर्ताओं को सूचनाएं दिखाने से पहले, सूचनाओं की अनुमतियों का अनुरोध करें.
कम से कम लागू करने का तरीका ऐसा दिखता है:
Kotlin
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
बटन पर टैप करने से, दूसरे चित्र में दिखाया गया डायलॉग बॉक्स दिखेगा:
अगर उपयोगकर्ता अनुमति का अनुरोध स्वीकार करता है, तो ऐप्लिकेशन का ऐप्लिकेशन की जानकारी सेक्शन, तीसरे चित्र की तरह दिखता है:
ज़्यादा प्राथमिकता वाली सूचना बनाना
सूचना बनाते समय, उसमें जानकारी देने वाला टाइटल और मैसेज शामिल करें.
इस उदाहरण में एक सूचना शामिल है:
Kotlin
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()
फ़ंक्शन को कॉल करने से सूचना इस तरह ट्रिगर होती है:
Kotlin
Button(onClick = { showNotification() }) { Text(text = "Show notification") }
इस उदाहरण में सूचना, चौथी इमेज की तरह दिखती है:
बैकग्राउंड में जारी गतिविधि की सूचना
उपयोगकर्ता को सूचना दिखाने पर, वह आपके ऐप्लिकेशन की सूचना या रिमाइंडर को स्वीकार या खारिज कर सकता है. उदाहरण के लिए, उपयोगकर्ता आने वाले फ़ोन कॉल को स्वीकार या अस्वीकार कर सकता है.
अगर आपकी सूचना किसी ऐसी गतिविधि से जुड़ी है जो जारी है, जैसे कि कोई आने वाला फ़ोन कॉल, तो सूचना को फ़ोरग्राउंड सेवा से जोड़ें. नीचे दिया गया कोड स्निपेट, फ़ोरग्राउंड सेवा से जुड़ी सूचना दिखाने का तरीका दिखाता है:
Kotlin
// Provide a unique integer for the "notificationId" of each notification. startForeground(notificationId, notification)
Java
// Provide a unique integer for the "notificationId" of each notification. startForeground(notificationId, notification);