【问题标题】:Parse push not sending notification to some devices解析推送不向某些设备发送通知
【发布时间】:2015-11-21 08:32:27
【问题描述】:

当我从 Parse Push 发送通知时,它会向某些设备发送通知,而对于其余设备,它会显示 GCM-Mismatch sender id。我已经在我的应用程序中正确配置了 Parse 配置,但有时它将我的应用程序生成的 GCM ID 存储在它的设备令牌字段中,然后给出此 GCM- Mismatch sender ID 错误。如何解决此错误?

【问题讨论】:

  • 你用的是什么客户端?
  • 我正在从 rest 客户端和解析仪表板发送消息。
  • 我已经正确配置了我的应用程序并通过我的 android 发件人 ID 从我的 Web 服务器正确发送消息,但我想从 parse.com 发送通知。 Parse.com 将我的发件人 ID 生成的注册 ID 存储在其安装表的设备令牌字段中,所以它给出了这个错误。
  • 您使用的是哪个 Android Parse SDK 版本?

标签: android parse-platform push-notification


【解决方案1】:

可能您的应用使用多个推送提供程序,包括 Parse。幸运的是 Parse 提供了一个很好的元数据。正如 Parse 在 docs 中所说,如果您使用除 Parse 之外的其他推送提供程序,您应该提供您的应用用于推送消息的每个 Sender_ID。看看下面:

Parse Android SDK 选择了合理的默认配置,因此 您不必担心 GCM 注册 ID、发件人 ID、 或 API 密钥。特别是,SDK 会自动注册您的 使用 Parse 的发件人 ID 在启动时推送的应用程序 (1076345567071) 并将生成的注册 ID 存储在 应用当前 ParseInstallation 的 deviceToken 字段。

但是,对于想要发送 从多个推送提供者推送,Parse 允许您选择 使用其他 GCM 发件人 ID 注册您的应用以进行推送。去做 这个,指定额外的 GCM 发件人 ID 与以下 <meta-data> 标记为应用程序中 <application> 元素的子元素 AndroidManifest.xml:

<meta-data android:name="com.parse.push.gcm_sender_id"
           android:value="id:YOUR_SENDER_ID" />;

在上面的示例 sn-p 中,YOUR_SENDER_ID 应替换为 数字 GCM 发件人 ID。请注意,Parse SDK 希望您添加前缀 带有 id: 前缀的发件人 ID,如示例 sn-p 中所示。

如果您想使用多个额外的发件人 ID 注册您的应用, 那么上面&lt;meta-data&gt; 元素中的android:value 应该包含一个 以逗号分隔的发件人 ID 列表,如下面的 sn-p:

<meta-data android:name="com.parse.push.gcm_sender_id"
           android:value="id:YOUR_SENDER_ID_1,YOUR_SENDER_ID_2,YOUR_SENDER_ID_3"/>;

【讨论】:

  • 是的,我以前使用自己的 GCM 推送通知和解析推送,我还在清单文件中配置了这个元数据。但是当我从解析仪表板发送通知时,我收到了这个错误。
  • 您是针对您的用户群进行测试还是仅在您自己的设备上进行测试?
  • 我正在针对我的用户群进行测试。
  • 由于此问题与应用程序相关,因此您应该记住此提示,当您的所有用户将其应用程序更新到已解决的版本时,您不会看到此错误。
  • 我在安装表中插入了很长时间的记录,所以它应该向所有设备发送通知。这个错误的确切原因是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多