首页 > 解决方案 > 在某些设备(例如小米 oppo、vivo、Redmi 和某些操作系统(Oxygen OS、Color OS、MIUI 等)中关闭应用程序时,FCM 推送通知不起作用)

问题描述

在某些设备(如小米、OPPO、vivo、Redmi 和某些操作系统(Oxygen OS、Color OS、MIUI 等)中关闭应用程序时,FCM 推送通知不起作用。

但其他设备和操作系统运行良好。

有没有人有这方面的经验?

安卓端代码。

公共类 MyFirebaseMessagingService 扩展 FirebaseMessagingService {

private static final String TAG = "MyFirebaseMsgService";

/**
 * Called when message is received.
 *
 * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
 */
// [START receive_message]
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.e(TAG, "From: " + remoteMessage.getFrom());


}

}

公共类 MyFirebaseInstanceIDService 扩展 FirebaseInstanceIdService {

private static final String TAG = MyFirebaseInstanceIDService.class.getName();

@Override
public void onTokenRefresh() {
    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);

    // If you want to send messages to this application instance or
    // manage this apps subscriptions on the server side, send the
    // Instance ID token to your app server.
    sendRegistrationToServer(refreshedToken);
}

private void sendRegistrationToServer(String refreshedToken) {


}

}

<service
        android:name=".MyFirebaseInstanceIDService"
        android:stopWithTask="false"
        >
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>

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

服务器端代码

{
"notification": {
"title": "FCM Kazi",
"body": "FCM bdoy1 ",
"sound": "default",
"click_action": "FCM_PLUGIN_ACTIVITY",
"icon": "fcm_push_icon"
},
"data": {
"param1": "value1",
"param2": "value2"
},
"to": "cVL4I6upF-g:APA91bE7EFv3apIMHuEL_oCoVvhhrUw-ftM6S11RE9HOF58wf3ewYkDUh9wUhUCMIa6zoftOgGH5HWt0rPKVHw2OShn06tIESFnGo9u8rooJ9qfiXQQlg-zZzjgi0cQ64BUaZnUCM09R",
"priority": "high"
}

标签: androidfirebasefirebase-cloud-messaging

解决方案


仅使用数据播放负载并删除通知播放负载。无论应用程序是打开还是关闭,数据播放负载总是会收到。通知播放负载仅在应用程序处于前台时才有效。如果您在少数设备上没有收到,请转到设备设置并启用该应用的接收通知。默认情况下,很少有制造商不允许通知。


推荐阅读