मैंने अपने एंड्रॉइड ऐप में पुश अधिसूचना के लिए फायरबेस को लागू किया। मैंने टोकन को पंजीकृत करने के लिए दो सेवाओं को लागू किया और पता चला जब अधिसूचना बनाने के लिए। जब मेरा ऐप लॉन्च होता है तो यह काम कर रहा है लेकिन जब मेरा ऐप बंद हो जाता है तो यह काम नहीं कर रहा है।फायरबेस पुश अधिसूचना
public class FirebaseinstanceIdService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
Log.e("Firebase", refreshedToken);
MainActivity.setFirebaseToken(refreshedToken);
}
}
public class MyFirebaseMessageService extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//Displaying data in log
//It is optional
Log.e(TAG, "From: " + remoteMessage.getFrom());
Log.e(TAG, "Notification Message Body: " + remoteMessage.getData().get("title"));
//Calling method to generate notification
sendNotification(remoteMessage.getData());
}
//This method is only generating push notification
//It is same as we did in earlier posts
private void sendNotification(Map<String, String> notification) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(notification.get("title"))
.setContentText(notification.get("body"))
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
}
और मेरे प्रकट:
<service
android:name=".FirebaseinstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service
android:name=".MyFirebaseMessageService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
और मेरे अनुरोध:
{
"to": "ex1CtVz5bbE:APA91bHiM_BCun62A9iCobF1yV26Dwn-hYCDhkYPoWEG5ZdqH0P28UsE5q1v7QibwAX7AJ290-9en9L6f548_2b7WEbJ8RPEWlIotLczjjCP7xEOWqeJk6Iz44vilWYvdu4chPwfsvXD",
"data": {
"title": "Notification",
"body": "Message",
}
}
मैं पहले से ही StackOverflow में कुछ समाधान पाया लेकिन यह मेरे मामले में काम नहीं करता। मेरे पास एक एपीआई रेस्ट है जो एपीआई अनुरोध पोस्ट को कॉल करता है: https://fcm.googleapis.com/fcm/send
तो, मेरा सवाल है: क्या ऐप बंद होने पर फायरबेस ही पुश अधिसूचना संभालता है और कैसे?
अपने जवाब
क्या आप * स्टैक ओवरफ्लो * समाधान भी निर्दिष्ट कर सकते हैं जिन्हें आपने कोशिश की है और काम नहीं किया है? यह इस कारण को कम करने में मदद करेगा। –
एपीआई कॉल में पैरामीटर अधिसूचना ऑब्जेक्ट या डेटा ऑब्जेक्ट हो सकता है, मैंने दोनों के साथ प्रयास किया और यह काम नहीं करता है। – yozzy
अपना manifest.xml – Saini