Android Academy · पाठ

पुश सूचनाएँ

Firebase Cloud Messaging के माध्यम से पुश सूचनाएँ भेजें। FCM सेट अप करें, सूचना चैनल बनाएँ, क्रियाओं वाली सूचनाएँ तैयार करें और अग्रभूमि तथा पृष्ठभूमि डिलीवरी संभालें।

पाठ 4, कुल 6 में से13 चरण

पुश सूचनाएँ, CoddyKit पर Android Academy का एक निःशुल्क पाठ है। यह 6 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Android Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Android Academy पाठ्यक्रम में कुल 6 पाठ शामिल हैं।

पुश सूचनाएँ क्या हैं

पुश सूचनाएँ आपके सर्वर को उपयोगकर्ताओं को संदेश भेजने देती हैं, भले ही ऐप अग्रभूमि में न हो। सामान्य उपयोग:

  • नए संदेशों की सूचनाएँ
  • ऑर्डर की स्थिति में बदलाव
  • ताज़ा महत्वपूर्ण समाचार
  • अनुस्मारक और प्रचार

Android पर Firebase Cloud Messaging (FCM) मानक पुश वितरण सेवा है।

FCM का परिचय

Firebase Cloud Messaging (FCM) का प्रवाह:

  1. पहली बार खुलने पर ऐप FCM के साथ पंजीकृत होता है → उसे डिवाइस का टोकन मिलता है
  2. ऐप टोकन आपके सर्वर को भेजता है
  3. जब आप पुश भेजना चाहते हैं, तो आपका सर्वर FCM को संदेश भेजता है
  4. FCM उसे डिवाइस तक पहुँचाता है

FCM निःशुल्क, विश्वसनीय है और ऐप बंद होने पर भी काम करता है।

प्रोजेक्ट में Firebase जोड़ना

Firebase जोड़ने के चरण:

  1. Firebase Console पर जाएँ → प्रोजेक्ट जोड़ें → Android ऐप जोड़ें
  2. पैकेज नाम के साथ अपना ऐप पंजीकृत करें
  3. google-services.json डाउनलोड करके उसे app/ में रखें
  4. प्लगइन और निर्भरताएँ जोड़ें
// project/build.gradle:
buildscript {
    dependencies { classpath 'com.google.gms:google-services:4.4.1' }
}

// app/build.gradle:
plugins { id 'com.google.gms.google-services' }

dependencies {
    implementation platform('com.google.firebase:firebase-bom:32.7.4')
    implementation 'com.google.firebase:firebase-messaging-ktx'
}

FCM की अनुमति (Android 13+)

Android 13 (API 33) से, आपको रनटाइम पर POST_NOTIFICATIONS अनुमति माँगनी होगी — ठीक किसी संवेदनशील अनुमति की तरह:

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

// In Activity (Android 13+):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    requestPermissionLauncher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
}

FirebaseMessagingService

आने वाले FCM संदेशों और टोकन के ताज़ा होने की प्रक्रिया संभालने वाली सेवा बनाएँ:

class MyFirebaseService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        // Send token to your backend to enable push delivery
        sendTokenToServer(token)
    }

    override fun onMessageReceived(message: RemoteMessage) {
        val title = message.notification?.title ?: "New Message"
        val body  = message.notification?.body  ?: ""
        showNotification(title, body)
    }
}

Manifest में सेवा पंजीकृत करना

सेवा को AndroidManifest.xml में घोषित करें:

<service
    android:name=".MyFirebaseService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

सूचना चैनल (Android 8+)

Android 8 (Oreo) से, सूचनाओं को एक चैनल को सौंपना आवश्यक है। उपयोगकर्ता प्रत्येक चैनल के लिए ध्वनि, कंपन और प्राथमिकता नियंत्रित कर सकते हैं:

fun createNotificationChannel(context: Context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        val channel = NotificationChannel(
            "messages_channel",           // channel ID
            "Messages",                   // user-visible name
            NotificationManager.IMPORTANCE_HIGH
        ).apply {
            description = "Incoming message notifications"
            enableVibration(true)
        }
        val manager = context.getSystemService(NotificationManager::class.java)
        manager.createNotificationChannel(channel)
    }
}

सूचना बनाना और दिखाना

Android के विभिन्न संस्करणों में अनुकूलता के लिए NotificationCompat.Builder का उपयोग करें:

fun showNotification(context: Context, title: String, body: String) {
    val intent = Intent(context, MainActivity::class.java)
    val pendingIntent = PendingIntent.getActivity(
        context, 0, intent,
        PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
    )

    val notification = NotificationCompat.Builder(context, "messages_channel")
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle(title)
        .setContentText(body)
        .setPriority(NotificationCompat.PRIORITY_HIGH)
        .setAutoCancel(true)             // dismiss on tap
        .setContentIntent(pendingIntent) // open app on tap
        .build()

    NotificationManagerCompat.from(context)
        .notify(System.currentTimeMillis().toInt(), notification)
}

कार्रवाइयों वाली सूचना

सूचनाओं में कार्रवाई के बटन जोड़ें, ताकि उपयोगकर्ता ऐप खोले बिना कार्रवाई कर सकें:

val replyIntent = Intent(context, ReplyReceiver::class.java)
val replyPending = PendingIntent.getBroadcast(
    context, 1, replyIntent,
    PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
)

val notification = NotificationCompat.Builder(context, "messages_channel")
    .setSmallIcon(R.drawable.ic_notification)
    .setContentTitle("New message from Alice")
    .setContentText("Hey, are you coming?")
    .addAction(R.drawable.ic_reply, "Reply", replyPending)
    .addAction(R.drawable.ic_dismiss, "Dismiss", null)
    .build()

अग्रभूमि बनाम पृष्ठभूमि में प्रबंधन

ऐप की स्थिति के आधार पर FCM का व्यवहार अलग होता है:

  • ऐप अग्रभूमि में — onMessageReceived() को कॉल किया जाता है; आपको स्वयं सूचना बनाकर दिखानी होती है
  • ऐप पृष्ठभूमि में या बंद — FCM notification पेलोड से अपने-आप सूचना दिखाता है; onMessageReceived को NOT कॉल किया जाता है

अतिरिक्त डेटा data पेलोड में रखें (notification में नहीं), ताकि वह हमेशा onMessageReceived में प्राप्त हो।

FCM टोकन प्राप्त करना

अपने सर्वर को भेजने के लिए वर्तमान FCM टोकन प्राप्त करें:

FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
    if (!task.isSuccessful) {
        Log.w("FCM", "Fetching token failed", task.exception)
        return@addOnCompleteListener
    }
    val token = task.result
    Log.d("FCM", "Token: $token")
    // Send token to your server
    sendTokenToServer(token)
}

त्वरित जाँच

जब आपका ऐप पृष्ठभूमि में हो और FCM 'notification' पेलोड वाला संदेश पहुँचाए, तब क्या होता है?

पुनरावृत्ति: पुश सूचनाएँ

Android पर FCM के साथ पुश सूचनाएँ:

  • Firebase, google-services.json और firebase-messaging-ktx जोड़ें
  • Android 13+ पर POST_NOTIFICATIONS की अनुमति माँगें
  • FirebaseMessagingService बनाएँ → onNewToken + onMessageReceived
  • Android 8+ के लिए NotificationChannel बनाएँ
  • NotificationCompat.Builder से सूचनाएँ बनाएँ
  • data पेलोड का उपयोग करें, ताकि संदेश हमेशा onMessageReceived में प्राप्त हो

अगला चरण: WorkManager के साथ पृष्ठभूमि कार्य निर्धारित करें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Kotlin सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
36
पाठ
152

अक्सर पूछे जाने वाले प्रश्न

क्या “पुश सूचनाएँ” पाठ निःशुल्क है?

हाँ — Android Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “पुश सूचनाएँ” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Android Academy पाठ्यक्रम में कुल 6 पाठ शामिल हैं।

“पुश सूचनाएँ” में मैं क्या सीखूँगा?

Firebase Cloud Messaging के माध्यम से पुश सूचनाएँ भेजें। FCM सेट अप करें, सूचना चैनल बनाएँ, क्रियाओं वाली सूचनाएँ तैयार करें और अग्रभूमि तथा पृष्ठभूमि डिलीवरी संभालें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Android Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Android Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Android Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 6 में से 4वाँ पाठ है।

“पुश सूचनाएँ” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Android Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Android Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Retrofit और REST APIs
  2. Coil से इमेज लोड करना
  3. त्रुटि प्रबंधन और UX
  4. पुश सूचनाएँ
  5. WorkManager और पृष्ठभूमि कार्य
  6. Play Store पर प्रकाशन
← Android Academy पर वापस जाएँ