android 安装后触发 GCM 接收器并发送空通知
android GCM receiver triggered after install and sending empty notif
我的项目中 class 继承了 azure NotificationHandler
。在我更新我的项目之前一切正常(接收器没有任何变化)。现在,每次我安装应用程序时,NotificationHandler
总是触发并发送空通知。我认为我的问题与 类似。
这是源代码
<receiver android:name="com.microsoft.windowsazure.notifications.NotificationsBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="_mypackage" />
</intent-filter>
</receiver>
任何帮助将不胜感激
我遇到了完全相同的问题,并在此处找到了解决方案:
每次我的应用程序重新安装时,我的推送消息的 BroadcastReceiver 都会收到一个 Intent,我就像处理普通的推送通知一样处理它(这导致向用户显示空通知)。显然 google 开始发送与常规推送消息具有相同意图过滤器的意图,以便处理推送令牌的刷新。如果您查看 google 在 Android 上实现推送客户端的文档,您会发现它现在建议我们停止创建 BroadcastReceivers,并使用 googles GCMReceiver(参见 https://developers.google.com/cloud-messaging/android/client)
因为当时我不打算重新实现我的推送客户端,所以我不得不过滤意图并弄清楚哪些是由 GCM 生成的,哪些是由我的推送服务器发送的。在这两种情况下,我总能在意图的额外内容中得到一个名为 "from" 的字段,所以我用它来过滤。
Google 发起的所有意图都有 "google.com/iid" 作为这个字段,其他通知上面有我的项目编号(例如:"from":“42352342352423”)
String from = extras.getString("from");
if (!"google.com/iid".equals(from)) {
// create notification
}
希望对你有帮助
我的项目中 class 继承了 azure NotificationHandler
。在我更新我的项目之前一切正常(接收器没有任何变化)。现在,每次我安装应用程序时,NotificationHandler
总是触发并发送空通知。我认为我的问题与
这是源代码
<receiver android:name="com.microsoft.windowsazure.notifications.NotificationsBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="_mypackage" />
</intent-filter>
</receiver>
任何帮助将不胜感激
我遇到了完全相同的问题,并在此处找到了解决方案:
每次我的应用程序重新安装时,我的推送消息的 BroadcastReceiver 都会收到一个 Intent,我就像处理普通的推送通知一样处理它(这导致向用户显示空通知)。显然 google 开始发送与常规推送消息具有相同意图过滤器的意图,以便处理推送令牌的刷新。如果您查看 google 在 Android 上实现推送客户端的文档,您会发现它现在建议我们停止创建 BroadcastReceivers,并使用 googles GCMReceiver(参见 https://developers.google.com/cloud-messaging/android/client)
因为当时我不打算重新实现我的推送客户端,所以我不得不过滤意图并弄清楚哪些是由 GCM 生成的,哪些是由我的推送服务器发送的。在这两种情况下,我总能在意图的额外内容中得到一个名为 "from" 的字段,所以我用它来过滤。 Google 发起的所有意图都有 "google.com/iid" 作为这个字段,其他通知上面有我的项目编号(例如:"from":“42352342352423”)
String from = extras.getString("from");
if (!"google.com/iid".equals(from)) {
// create notification
}
希望对你有帮助