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学习记录-第六周

Android Studio - 无法使用广播接收器设置通知

推送通知在android studio中不起作用

如何在 android studio (java) 中清除通知

使用 json/php 的 Android Studio 简单通知