无论我尝试了什么,但没有通知灯。我正在运行Android 26 Oreo。我的手机仅显示消息和未接来电的闪烁灯。
String CHANNEL_ID = "my_channel_01";
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
CharSequence name = "Name"; // The user-visible name of the channel.
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
mChannel = new NotificationChannel("my_channel_01", name, importance);
mChannel.enableLights(true);
mChannel.setLightColor(Color.GREEN);
mChannel.shouldShowLights();
nm.createNotificationChannel(mChannel);
}
Notification notif = new Notification.Builder(MainActivity.this)
.setSmallIcon(R.mipmap.ic_launcher_2)
.setContentTitle("Blhas")
.setContentText("Subject")
.setSubText("Subtext")
.setColor(Color.RED)
.setLights(255, 0, 0)
.setContentIntent(pIntent)
.setStyle(new Notification.BigTextStyle().bigText("..."))
.setChannelId(CHANNEL_ID)
.setPriority(Notification.PRIORITY_HIGH)
.build();
nm.notify(LED_NOTIFICATION_ID, notif);
无论如何都要控制LED灯?
答案 0 :(得分:0)
我遇到了同样的问题,我发现一旦为特定的通道ID提供了一个NotificationManager.IMPORTANCE_LOW通道,该通道仍然具有该重要性,即使我们稍后更改了该重要性,即使重新启动也不会更改该重要性。特定的通道ID。当我们重视NotificationManager.IMPORTANCE_LOW时,对于特定的通道ID,我们不会得到通知指示灯,它会一直保持这种状态,因此我找到的解决方案是卸载应用程序并重新安装但这一次的重点是NotificationManager.IMPORTANCE_DEFAULT或更高版本,否则我们可以完全更改频道ID。 而且不仅重要性保持不变,而且针对特定频道ID的对该频道其他方法的任何调用也保持不变。
mChannel.enableLights(true);
mChannel.setLightColor(Color.RED);
mChannel.setSound(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.silent),null);