Tôi đã triển khai Firebase để thông báo đẩy trong ứng dụng Android của mình. Tôi đã triển khai hai dịch vụ để đăng ký mã thông báo và tạo thông báo khi nó được phát hiện. Khi ứng dụng của tôi khởi chạy, ứng dụng sẽ hoạt động nhưng khi ứng dụng của tôi đóng, ứng dụng sẽ không hoạt động.Thông báo đẩy Firebase
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());
}
}
Và biểu hiện của tôi:
<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>
Và yêu cầu của tôi:
{
"to": "ex1CtVz5bbE:APA91bHiM_BCun62A9iCobF1yV26Dwn-hYCDhkYPoWEG5ZdqH0P28UsE5q1v7QibwAX7AJ290-9en9L6f548_2b7WEbJ8RPEWlIotLczjjCP7xEOWqeJk6Iz44vilWYvdu4chPwfsvXD",
"data": {
"title": "Notification",
"body": "Message",
}
}
Tôi đã tìm thấy một số giải pháp trong StackOverflow nhưng nó không hoạt động trong trường hợp của tôi. Tôi có phần còn lại API gọi là Yêu cầu API Bài đăng: https://fcm.googleapis.com/fcm/send
Vì vậy, có câu hỏi của tôi: Firebase có xử lý thông báo đẩy khi ứng dụng bị đóng và cách thực hiện không?
Cảm ơn câu trả lời của bạn
Bạn cũng có thể chỉ định các giải pháp * StackOverflow * mà bạn đã thử và không hoạt động không? Nó sẽ giúp thu hẹp những gì gây ra điều này. –
Trong cuộc gọi api các tham số có thể là đối tượng thông báo hoặc đối tượng dữ liệu tôi đã thử với cả hai và nó không hoạt động. – yozzy
Thêm tệp kê khai của bạn – Saini