我订阅了GCM的主题,当我通过Android设置删除所有应用数据时,GCM令牌是相同的,主题上的GCM通知仍然可用,因此我收到了我不想接收的通知
我的问题是:
答案 0 :(得分:2)
你不能只使用工具进行调试我建议:)
您必须保存订阅的主题,例如在sharedprefs中。如果您在共享偏好中没有令牌,则应致电instanceId.deleteInstanceID()
只需致电instanceId.deleteInstanceID()
令牌很少会改变,但当它改变时,您必须重新订阅所有主题。
<强> TOOL 强>
您可以使用this工具进行调试:)
当我没有订阅任何主题时,我会得到类似的内容:
{
"applicationVersion": "39",
"connectDate": "2016-01-12",
"application": "com.esportlivescore.develop.debug",
"authorizedEntity": "11443413691531",
"connectionType": "MOBILE",
"appSigner": ".................",
"platform": "ANDROID"
}
我订阅了一些主题后:
{
"applicationVersion": "39",
"connectDate": "2016-01-12",
"application": "com.esportlivescore.develop.debug",
"authorizedEntity": "11443413691531",
"rel": {
"topics": {
"match-28388-start": {
"addDate": "2016-01-13"
}
}
},
"connectionType": "MOBILE",
"appSigner": ".................",
"platform": "ANDROID"
}
如此宽松的用法。我使用高级REST客户端(plugin for Chrome)
https://iid.googleapis.com/iid/info/<TOKEN>?details=true
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
url中的 TOKEN :token obtainet from google
密钥:可在Google Developer Console / GCM控制台中找到
答案 1 :(得分:1)
如何从gcm获取所有订阅主题的列表?
当前版本的GCM并未提供执行此操作的方法。
如何在不知道姓名的情况下删除所有订阅主题?
documentation表示InstanceId.deleteInstanceID()会执行此操作。
在清除应用数据或删除所有数据后,是否应更改GCM令牌 在这种情况下自动订阅主题?
虽然documentation表示如果用户清除应用数据,则会删除令牌注册和订阅,但在当前版本的GCM中则不然。在相关question的答案中讨论了这个问题。