gpt4 book ai didi

android - 堆叠通知不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:07:59 26 4
gpt4 key购买 nike

我需要形成一组通知。我做了例子 enter link description here

但是我的通知没有分组。我做错了什么?

我的代码:

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);
}

方法调用:

 @Override
protected void onMessage(Context context, Intent intent) {
Log.d(TAG, "Поступило сообщение: " + intent.getExtras());
String message = intent.getStringExtra("content");
generateNotification(context, message);
}

编辑,完整代码:这是我生成通知的服务

 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);
}
}

最佳答案

您必须使用之前的详细信息创建摘要通知。可见的是这个摘要通知,而不是之前的通知。它是这样的:

private static int id =0;
private static int unread_notif = 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);

unread_notif++;

if (unread_notif>1) {
Notification summaryNotification = new NotificationCompat.Builder(mContext)
.setContentTitle("Your summary message")
.setSmallIcon(R.drawable.ic_small_icon)
.setLargeIcon(largeIcon)
.setStyle(new NotificationCompat.InboxStyle()
.addLine("Details about your first notification")
.addLine("Details about your second notification")
.setBigContentTitle(Integer.toString(unread_notif)+" new notifications")
.setSummaryText("More details in app"))
.setGroup(GROUP_KEY_GUEST)
.setGroupSummary(true)
.build();

notificationManager.notify(id++, summaryNotification);
}
}

请参阅 Add a Summary Notification 中的文档

关于android - 堆叠通知不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27309037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com