我编写了一个java程序来测试我们数据库中的regtoken列表是无效的还是规范的。
这是我的代码:
for (int i = 0; i < registration_ids.size(); i++) {
JsonObject jsonObject = new JsonParser().parse(new Gson().toJson(results.get(i), LinkedHashMap.class))
.getAsJsonObject();
String key = "";
if (jsonObject.keySet().size() == 2) {
key = "Canonical";
} else if (jsonObject.has("message_id")) {
} else if (jsonObject.get("error").getAsString().equalsIgnoreCase("InvalidRegistration")) {
key = "Invalid";
} else if (jsonObject.get("error").getAsString().equalsIgnoreCase("NotRegistered")) {
key = "Invalid";
}
if (key.equals("Canonical")) {
createFile(registration_ids.get(i) + ","
+ jsonObject.get("registration_id").getAsString().concat(System.lineSeparator()), key);
} else if (key.equals("Invalid"))
createFile(registration_ids.get(i).concat(System.lineSeparator()), key);
}
但是在验证了几十万个reg令牌之后,gcm会将一些注册表标识为无效,然后返回与规范相同的reg令牌验证结果。 为什么会这样?