我正在尝试将几个通知放在一个Whatsapp中,使用自定义ParsePushBroadcastReceiver,但GcmBroadcastReceiver接收我无法管理的自动推送。
Android Manifest:
<receiver android:name="com.parse.ParseBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.USER_PRESENT" />
</intent-filter>
</receiver>
<receiver
android:name=".ws.ParseAppReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>
<receiver
android:name="com.parse.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
GmcBroadcasstReceiver:
public final void onReceive(Context context, Intent intent) {
ServiceUtils.runWakefulIntentInService(context, intent, PushService.class);
MyCustomReceiver:
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
if(! intent.getAction().equals("com.parse.push.intent.DELETE")) {
JSONObject data = getDataFromIntent(intent);
try {
mStringMessage = data.getString("alert");
} catch (JSONException e) {
e.printStackTrace();
}
NotificationsManager.getInstance(context).addMessageToArray(mStringMessage);
mArrayMessages = NotificationsManager.getInstance(context).getPushMessages();
Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(),
R.drawable.ic_launcher);
NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
for(int i = 0; i < mArrayMessages.size(); i++) {
inboxStyle.addLine(mArrayMessages.get(i));
}
String title = mArrayMessages.size() + "nuevas Notificaciones";
Notification summaryNotification = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setSmallIcon(R.drawable.ic_runator_launcher)
.setLargeIcon(largeIcon)
.setStyle(inboxStyle)
.setGroup("example")
.setGroupSummary(true)
.build();
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(context);
notificationManager.notify(NOTIFICATION_ID, summaryNotification);
} else {
NotificationsManager.getInstance(context).clearArrayMessages();
}
}
GmcBroadcasstReceiver收到自动推送通知,MyCustomReceiver收到相同的通知,然后应用程序显示两次推送通知。
如果有任何想法,请帮助我,提前致谢。