为什么我的图标没有显示在通知上?

时间:2019-07-18 11:25:29

标签: android

即使尝试了小图像,通知上也未显示图标 截图:image

请参阅:https://www.youtube.com/watch?v=uuypb1Up7Wo

此行: .addAction(R.mipmap.ic_launcher, "Pay", pendingIntent)

代码:

 private void createNotification() {
        int rowId = getRowId(mReceivedId);
        showLog("coming?");
        mTitle = reminder.getTitle();
        final int NOTIFY_ID = 0; // ID of notification
        String id = "1";
        PendingIntent pendingIntent;
        NotificationCompat.Builder builder;
        if (mNotificationManager == null) {
            mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            showLog("if");
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel mChannel = mNotificationManager.getNotificationChannel(id);
            if (mChannel == null) {
                mChannel = new NotificationChannel(id, mTitle, importance);
                mChannel.enableVibration(true);
                mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
                mNotificationManager.createNotificationChannel(mChannel);
            }
            builder = new NotificationCompat.Builder(context, id);
            editIntent = new Intent(context, ReminderDetailActivity.class);
            editIntent.putExtra(REMINDER_ID, mReceivedId);
            editIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            pendingIntent = PendingIntent.getActivity(context, rowId, editIntent, 0);
            builder.setContentTitle(mTitle)

                    .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
                    .setContentTitle(mTitle)
                    .setSmallIcon(R.drawable.ic_alarm_black_24dp) // required
                    .setContentText("Have you completed your task?") // required
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                    .setAutoCancel(true)
                    .setContentIntent(pendingIntent)
                    .addAction(R.mipmap.ic_launcher, "Pay", pendingIntent)
                    .setPriority(Notification.PRIORITY_HIGH);
            builder.setColor(ContextCompat.getColor(context, R.color.colorPrimary));

        } else {
            builder = new NotificationCompat.Builder(context, id);
            editIntent = new Intent(context, ReminderDetailActivity.class);
            editIntent.putExtra(REMINDER_ID, mReceivedId);
            editIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            pendingIntent = PendingIntent.getActivity(context, rowId, editIntent, 0);
            builder.setContentTitle(mTitle)// required

                    .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
                    .setContentTitle(mTitle)
                    .setSmallIcon(R.drawable.ic_alarm_black_24dp)// required
                    .setContentText("Have you completed your task?") // required
                    .setDefaults(Notification.DEFAULT_ALL)
                    .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                    .setAutoCancel(true)
                    .setContentIntent(pendingIntent)
                    .addAction(R.drawable.pay_now, "Pay", pendingIntent)
                    .setPriority(Notification.PRIORITY_HIGH);
            builder.setColor(ContextCompat.getColor(context, R.color.colorPrimary));
        }

        Notification notification = builder.build();
        mNotificationManager.notify(rowId, notification);

    }

1 个答案:

答案 0 :(得分:0)

尝试使用小徽标,它应该可以工作。