Android Studio:带有ARGB的通知LED上的自定义颜色不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio:带有ARGB的通知LED上的自定义颜色不起作用相关的知识,希望对你有一定的参考价值。
我试图为ARGB颜色的通知LED设置自定义颜色。
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification.Builder(this)
.setDefaults(0)
.setTicker("")
.setSmallIcon(R.drawable.maxapplogo)
.setContentTitle("Notification")
.setContentText("This is a notification test!")
.setAutoCancel(true)
.setVibrate(new long[] { 1000, 500, 1000, 500, 1000 })
.setLights(Color.GREEN, 1000, 1000)
.build();
/* notification.ledARGB = 0xffffee05; */
/* here I wanted to know if the int values of the color can help me */
int black = Color.BLACK;
Log.d("black color", String.valueOf(black)); // -16777216
int green = Color.GREEN;
Log.d("green color", String.valueOf(green)); // -16711936
int red = Color.RED;
Log.d("red color", String.valueOf(red)); // -65536
notification.flags = Notification.FLAG_SHOW_LIGHTS;
if(notificationManager != null) {
notificationManager.notify(0, notification);
} else {
Toast.makeText(getApplicationContext(), "Notification failed", Toast.LENGTH_SHORT).show();
}
如果我使用命令COLOR.GREEN或任何其他可用颜色设置颜色,它将起作用。但是使用ARGB规范它不起作用。即使使用不同的ARGB颜色,它也始终显示相同的颜色。
我在三星Galaxy S8上测试了我的应用程序。我没有其他智能手机可供测试。有人知道为什么这不起作用。它应该根据其他Stackoverflow帖子。
答案
FLAG_SHOW_LIGHTS和Notification.Builder.setLights(int,int,int);自android O(API级别26)以来已弃用
您需要使用通知频道
NotificationChannel mChannel = new NotificationChannel(id, name, importance);
mChannel.enableLights(true);
// Sets the notification light color for notifications posted to this
// channel, if the device supports this feature.
mChannel.setLightColor(Color.RED);
以上是关于Android Studio:带有ARGB的通知LED上的自定义颜色不起作用的主要内容,如果未能解决你的问题,请参考以下文章
从通知启动 Activity - Android Studio
Android Studio - 无法使用广播接收器设置通知