无法接收推送通知:com.google.android.gcm.server.InvalidRequestException:HTTP状态码:400

时间:2019-08-29 13:49:35

标签: android google-cloud-messaging

在我的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$000(GcmWrapper.java:14)
        at com.myproject.service.notify.GcmWrapper$1.run(GcmWrapper.java:28)
at java.lang.Thread.run(Thread.java:722)

结果是android客户端无法收到推送通知。

1 个答案:

答案 0 :(得分:1)

不建议使用GCM,并且已将其替换为FCM。 GCM不应该再使用了。关于此有很多邮件/通讯。

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