来自parse.com的推送通知并不一致.随机推送通知将失败,导致GCM – MISMATCH SENDER ID“错误.我的理解是,通过编程,我们不必对GCM执行任何操作,因为parse.com将objectId发送到GCM.在任何一种情况下,我都没有能够找出有时出现此错误的任何具体原因,有时则不会.此外,我使用的是Parse版本,1.10.2.
我的Application类具有以下内容
Parse.initialize(this,APPLICATION_ID_DEBUG,CLIENT_KEY_DEBUG);
Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
ParsePush.subscribeInBackground(Constants.CHANNEL,new SaveCallback() {
@Override
public void done(ParseException e) {
if (Utils.checkIfNull(e)) {
// subscribed to channel
} else {
// failed to subscribe to channel
}
}
});
用户登录我的应用程序后,我将一个频道附加到他们.我保存的频道数据只是我从服务器获取的用户唯一ID.
List
最后,当用户退出时,我取消订阅他们的频道.我添加了取消订阅以尝试阻止任何一个设备接收多个推送通知,因为他们已经以多个用户身份登录到应用程序并订阅了多个渠道.以下是我注销时代码的外观.
ParsePush.unsubscribeInBackground(Constants.CHANNEL,new SaveCallback() {
@Override
public void done(ParseException e) {
if (Utils.checkIfNull(e)) {
// successfully unsubscribed to channel
// save the updated (unsubscribed) parse installation
final ParseInstallation parseInstallation = ParseInstallation.getCurrentInstallation();
parseInstallation.put(Constants.CHANNEL,new ArrayList
此实现的结果是,当推送通知不起作用时,它将继续失败大约50-100次.然后它将开始工作约150-200次.然后它又回到了不工作状态.它来回不是工作,不是工作类型.它更多的是失败,失败,失败多次,然后成功,成功,多次成功.对我在实施中缺少的任何帮助表示赞赏.提前致谢.
最佳答案
我终于找到了这个问题的答案!这个问题与我的实施无关.对于遇到此相同冲突的任何其他人,请查找同时使用推送通知的任何其他第三方服务.对我来说,Mixpanel是罪魁祸首.当我从我的代码库中删除mixpanel.initPushHandling()时,所有都开始工作了.这是有道理的,因为当您初始化mixpanel的推送通知时,您传入一个用于GCMSenderID的值.解析推送通知的工作方式不同.使用parse.com,您不必发送GCMSenderID,因为parse将自动发送objectId以执行推送通知.在这两者之间,这会导致GCM-MISMATCH-SENDER错误.
因此解决方案是,删除任何可能与parse.com冲突的服务.并随意使用我的实现,这是好的.干杯!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。