Ich muss eine Gruppe von Benachrichtigungen bilden. Ich machte das Beispiel enter link description hereStacking Notifications funktioniert nicht
aber meine Nachricht sind nicht gruppiert. was habe ich falsch gemacht?
mein Code:
private static int id =0;
final static String GROUP_KEY_GUEST = "group_key_guest";
private static void generateNotification(Context context, String message) {
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
Intent intent = new Intent(context,MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_stat_gcm)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_gcm))
.setTicker("New Message")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle("Message")
.setContentText(message)
.setGroup(GROUP_KEY_GUEST)
.build();
notificationManager.notify(id++, notification);
}
Methodenaufruf:
@Override
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "Поступило сообщение: " + intent.getExtras());
String message = intent.getStringExtra("content");
generateNotification(context, message);
}
EDIT, vollständige Code: Dies ist mein Dienst, den ich Benachrichtigungen generieren
package com.managment.pavel.managmentgradle;
public class GCMIntentService extends GCMBaseIntentService {
private static int id =0;
final static String GROUP_KEY_GUEST = "group_key_guest";
NotificationManagerCompat notificationManager;
public GCMIntentService() {
super(SENDER_ID);
notificationManager = NotificationManagerCompat.from(getApplicationContext());
}
@Override
protected void onMessage(Context context, Intent intent) {
String message = intent.getStringExtra("content");
generateNotification(context, message);
}
@Override
protected void onError(Context context, String s) {
Toast.makeText(context,"Error",Toast.LENGTH_LONG).show();
}
@Override
protected void onRegistered(Context context, String registrationId) {
ServerUtilities.register(context, registrationId);
}
@Override
protected void onUnregistered(Context context, String registrationId) {
ServerUtilities.unregister(context, registrationId);
}
private void generateNotification(Context context, String message) {
Intent intent = new Intent(context,MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_stat_gcm)
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_stat_gcm))
.setTicker("Новое сообщение")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setContentTitle("Сообщение")
.setContentText(message)
.setGroup(GROUP_KEY_GUEST)
.build();
notificationManager.notify(id++, notification);
}
}
Ich glaube, Sie jedes Mal neue Instanz von NotificationManagerCompat initialisieren so versuchen initialisieren nur ONETIME out Seite generateNotification(). –
vielleicht dumm, aber ich kann nicht. Öffentliche Klasse GCMIntentService erweitert GCMBaseIntentService { private static int id = 0; letzte statische Zeichenfolge GROUP_KEY_GUEST = "group_key_guest"; NotificationManagerCompat notificationManager; public GCMIntentService() { Super (SENDER_ID); notificationManager = NotificationManagerCompat.from (getApplicationContext()); } –