- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 android
中实现通知。我想更改通知图标,但问题是 setSmallIcon
不起作用。我的自定义图标显示在 lollipop
设备中,但未在 lollipop
设备上方显示自定义图标。
我试过下面的代码:
send_notification.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.book2);
NotificationCompat.Builder builder = new NotificationCompat.Builder(MainActivity.this)
.setContentTitle("New Book Added")
.setContentText("Android with java")
.setStyle(new NotificationCompat.BigPictureStyle()
.bigPicture(icon)
.bigLargeIcon(null));
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setSmallIcon(R.drawable.ic_notification);
} else {
builder.setSmallIcon(R.drawable.notification);
}
NotificationManager manager= (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.notify(1,builder.build());
}
}
大图也没有显示。请帮忙。
编辑:
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.test);
String channelId = getString(R.string.default_notification_channel_id);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, channelId);
if (remoteMessage.getData().size() > 0) {
String title = remoteMessage.getData().get("title");
String text = remoteMessage.getData().get("body");
builder.setContentTitle(title)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentText(text)
.setLargeIcon(icon)
.setPriority(Notification.PRIORITY_MAX)
.setStyle(new NotificationCompat.BigPictureStyle()
.bigLargeIcon(icon));
} else if (remoteMessage.getNotification() != null) {
String title = remoteMessage.getNotification().getTitle();
String text = remoteMessage.getNotification().getBody();
builder.setContentTitle(title)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentText(text)
.setLargeIcon(icon)
.setPriority(Notification.PRIORITY_MAX)
.setStyle(new NotificationCompat.BigPictureStyle()
.bigLargeIcon(icon));
}
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(channelId, "Testing channel", NotificationManager.IMPORTANCE_DEFAULT);
manager.createNotificationChannel(notificationChannel);
}
manager.notify(1, builder.build());
最佳答案
尝试卸载并重新安装 100% 新鲜的应用程序。 Android 保留缓存以便更快地运行,通知就是其中之一。
一段时间前,卸载并重新安装对我的问题有效。
另外请记住,在 Android Oreo 及更高版本中,为了使通知正常工作;必须创建通知 channel ,并且您正在创建的通知也应该分配给其中一个 channel 。
我尝试过的方法(对我有用):(Kotlin 中的示例,但应该足够相似);
fun onClick(view: View) {
var icon_resource = R.drawable.ic_mtrl_chip_close_circle
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
icon_resource = R.drawable.ic_mtrl_chip_checked_circle
}
val icon = BitmapFactory.decodeResource(resources,R.mipmap.ic_launcher_round)
val notification = NotificationCompat.Builder(this)
.setSmallIcon(icon_resource)
.setContentTitle("New Book Added")
.setContentText("Android with java")
.setLargeIcon(icon)
.setStyle(NotificationCompat.BigPictureStyle()
.bigPicture(icon)
.bigLargeIcon(null)).build()
val manager= getSystemService(NOTIFICATION_SERVICE) as NotificationManager
manager.notify(1,notification)
}
我认为您的图片有问题(就像我的图片一样;尺寸或其他)。在花了很多时间试图弄清楚为什么它没有在通知中显示启动器图标后,我决定尝试使用我放置的其中一张图片...
// Parametherise this drawable with an if statement of your own
var icon_resource = R.drawable.ic_mtrl_chip_close_circle
val manager= NotificationManagerCompat.from(this)
// This is required because the testing device is an Android O
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
manager.createNotificationChannel(
NotificationChannel("CUSTOM_NOTIFICATIONS", "StackOverflow", NotificationManager.IMPORTANCE_HIGH)
)
}
val icon = BitmapFactory.decodeResource(resources,R.mipmap.dafuq)
val notification = NotificationCompat.Builder(this, "CUSTOM_NOTIFICATIONS")
.setSmallIcon(icon_resource)
.setContentTitle("New Book Added")
.setContentText("Android with java")
.setLargeIcon(icon)
.setStyle(NotificationCompat.BigPictureStyle()
.bigPicture(icon)
.bigLargeIcon(null)).build()
manager.notify(1,notification)
当我使用错误的图像时,我的 Logcat 中会出现这个讨厌的日志。检查相同或相似的!2019-04-10 20:11:02.120 3434-3434/com.example.deletemeapp D/skia: --- 无法使用消息“未实现”创建图像解码器
关于java - .setSmallIcon 未更改通知图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55597910/
我正在 android 中实现通知。我想更改通知图标,但问题是 setSmallIcon 不起作用。我的自定义图标显示在 lollipop 设备中,但未在 lollipop 设备上方显示自定义图标。
我试图将小图标设置为网络速度,但应用程序每次都强制关闭。我不知道为什么会这样。这是我的通知方法。我在尝试设置 data_icon 时遇到错误。任何帮助将不胜感激。 public void showNo
您好,我有一个生成的合并位图,需要在 Android 通知 SmallIcon 中设置它,我该怎么做? 如果我尝试使用位图(如可绘制图标),我会收到错误。 Bitmap bitmap = dynami
我正在处理通知。我会使用下面的代码设置通知图标,但无法设置图标的背景颜色(突出显示的圆形紫色)。如果有人愿意分享这个方法,那就太好了。 notificationBuilder.setConte
我想用图标的短文本 indtead 发布通知。我打算自己绘制到这个位图中。问题是 setSmallIcon 需要 resId(我不想创建大量预定义的位图!),但是 setLargeIcon 值在通知栏
我正在从 Firebase 控制台推送通知。我能够轻松接收通知数据并且通知也会出现,但我想做的是更改通知的小图标和大图标。 我正在使用这两种方法,但它们似乎都不起作用。我还尝试通过 res>New>V
我使用这个简单的代码在 Android 4.1 或更高版本中设置通知。它运作良好,但我的问题来自 SmallIcon 和 LargeIcon。我了解 SmallIcon 显示在状态栏中,LargeIc
我有这个代码: Notification notif; // Build notification Notification.Builder notifBuilder = new Notificati
我的应用程序在 API < v21 下,所以我使用 Android 支持库 23.2 来管理我的 vectorDrawables。 android { defaultConfig {
我是一名优秀的程序员,十分优秀!