N S*_*rma 13 android google-cloud-messaging
您好我们正在开发一个Android应用程序,其中GCM在营销目的中起着非常重要的作用,将一些重要信息推送给用户等.
它在60-70%的情况下工作正常,但其他30-40%的情况不起作用.因此,其他用户永远不会收到任何仅对他们有用的通知.
这就是我们每天都在失去用户的原因.以下是获取GCM注册ID的代码.
String msg = "";
int exceptionOccurRetry = 0;
while (exceptionOccurRetry < 5) {
try {
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
int retry = 0;
while (retry < 5 && regid.length() == 0) {
regid = gcm.register(SENDER_ID);
++retry;
}
msg = "Device registered, registration ID=" + regid;
if (!regid.equals("")) {
// You should send the registration ID to your
// server
// over HTTP, so it
// can use GCM/HTTP or CCS to send messages to your
// app.
sendRegistrationIdToBackend();
}
break;
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
exceptionOccurRetry++;
}
}
Run Code Online (Sandbox Code Playgroud)
我们正在寻找一些原因,因为某些用户无法使用GCM ID.
我们只知道一个原因如果用户设备没有在用户手机上安装Google Play服务,那么它就不起作用.
我们正在寻找解决这个问题的更多理由.
我们的团队成员正在尝试发送通知,如果失败,他们会等待大约 60 毫秒或几秒(我不确定)才能再次发送此推送通知,如果仍然不起作用,他们会等待两次,等等 ...
你必须评估谷歌的响应,下面有一个错误字符串:
std::string error = response["results"][0]["error"].asString();
如果用户帐户已移动到,它会向您提供信息,如果是这样,您可以使用:
Json::Value newRegistrationId = response["results"][0]["registration_id"];
获取新的ID。
| 归档时间: |
|
| 查看次数: |
1136 次 |
| 最近记录: |