未收到推送通知:com.google.android.gcm.server.InvalidRequestException:HTTP 状态代码:400

Not receive push notifications: com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 400

在我的 android 应用程序中,我成功使用 GCM 获取推送通知。 这里发送推送通知的片段:

import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.Sender;

public class GcmWrapper {
    private static AtomicReference<Sender> gcmSender;


    private void toGCM(String receiver, String payload) {
        String status;
        Message message = new Message.Builder().addData("data", payload).build();
        Result result;
        try {
            result = gcmSender.get().send(message, receiver, 5);
            status = "Sent message to one device: " + result;
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }

    }
}

并且此代码已成功运行多年。不错

但是从 2019 年夏天开始,我在这一行出现错误:

result = gcmSender.get().send(message, receiver, 5); // line number 41

错误信息:

[ERROR] 29.08.2019 15:09:27.835 [Thread-7271] [ticket = ] [request_id = ] com.myproject.service.notify.GcmWrapper.toGCM(GcmWrapper.java:52) 
    HTTP Status Code: 400
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 400
        at com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:177)
        at com.google.android.gcm.server.Sender.send(Sender.java:121)
        at com.myproject.service.notify.GcmWrapper.toGCM(GcmWrapper.java:41)
        at com.myproject.service.notify.GcmWrapper.access[=13=]0(GcmWrapper.java:14)
        at com.myproject.service.notify.GcmWrapper.run(GcmWrapper.java:28)
at java.lang.Thread.run(Thread.java:722)

因此 android 客户端收不到推送通知。

GCM 已弃用并已替换为 FCM。不应再使用 GCM。已经有很多关于此的邮件/通信。

例如参见https://developers.google.com/cloud-messaging/faq