在我的项目中,我有继承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,我处理它像一个普通的推送通知(导致显示一个空的通知给用户)。显然,谷歌开始发送这个意图,有相同的意图过滤器作为常规的推送消息,以处理刷新推送令牌。如果你看一下谷歌在Android上实现推送客户端的文档,你会发现它现在建议我们停止创建broadcastreceiver,并使用谷歌的GCMReceiver(见https://developers.google.com/cloud-messaging/android/client)
由于我当时不打算重新实现我的推送客户端,所以我必须过滤意图并找出哪些是由GCM生成的,哪些是由我的推送服务器发送的。在这两种情况下,我总是可以在intent的extras中获得一个名为"from"的字段,所以我用它来过滤。Google发布的所有意向都以"google.com/iid"作为这个字段,其他通知都有我的项目编号(例如:"from":"42352342352423")
String from = extras.getString("from");
if (!"google.com/iid".equals(from)) {
// create notification
}
我希望这对你有帮助