Android通知仅显示状态栏上的图标

时间:2016-08-10 10:42:05

标签: android

在我的应用程序中,我编写了简单的通知功能,该方法仅在状态栏上显示图标,我也想显示通知布局,但是没有自动显示,我已经下拉Android状态栏以查看,

public static void createNotification(Context context, Class activity, String title, String subject, int count_unread_message) {

    Intent intent = new Intent(context, activity);
    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);

    Notification notify = new NotificationCompat.Builder(context)
            .setAutoCancel(true)
            .setContentTitle(title)
            .setContentText(subject)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setNumber(count_unread_message)
            .setPriority(0)

            .setLights(Color.BLUE, 500, 500)
            .setContentIntent(pendingIntent)
            .build();

    notify.flags |= Notification.FLAG_AUTO_CANCEL;

    NOTIFICATIONMANAGER = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
    NOTIFICATIONMANAGER.notify(159753456, notify);
}

似乎这个问题适用于Android 6及以上版本

4 个答案:

答案 0 :(得分:2)

对我来说,这是通过在构建器上调用setDefaults(Notification.DEFAULT_ALL)来解决的。希望有所帮助,

答案 1 :(得分:1)

我相信你的问题是没有显示通知横幅,对吧?因此,用户必须降低状态栏才能看到通知。

对我而言,解决这个问题的方法是为通知设置更高的优先级。在您的情况下,您应该将其设置为高或最大(因为它已经在0 - 默认):

            .setPriority(1)//1 is high, 2 is max

参考:NotificationCompat.Builder documentation

答案 2 :(得分:1)

在通知生成器上添加setDefaults(Notification.DEFAULT_ALL)对我有用。

答案 3 :(得分:0)

在代码中添加.setLargeIcon(R.mipmap.ic_launcher)

Bitmap icon = BitmapFactory.decodeResource(context.getResources(),
                                           R.drawable.yourIcon);

 Notification notify = new NotificationCompat.Builder(context)
            .setAutoCancel(true)
            .setContentTitle(title)
            .setContentText(subject)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setLargeIcon(icon)//can set only bitmap images convert your drawable to bitmap
            .setNumber(count_unread_message)
            .setPriority(0)

            .setLights(Color.BLUE, 500, 500)
            .setContentIntent(pendingIntent)
            .build();

https://developer.android.com/reference/android/app/Notification.html#largeIcon