在我的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客户端无法收到推送通知。
答案 0 :(得分:1)
不建议使用GCM,并且已将其替换为FCM。 GCM不应该再使用了。关于此有很多邮件/通讯。