【问题标题】:Overwrite existing LED notification覆盖现有的 LED 通知
【发布时间】:2026-02-13 05:15:01
【问题描述】:

我以这种直接的方式投射 LED 通知:

NotificationManager notifMgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
notifMgr.cancelAll();
Notification notif = new Notification();
notif.ledARGB = 0xff0000ff; 
notif.ledOnMS = 99999; 
notif.ledOffMS = 0; 
notif.flags |= Notification.FLAG_SHOW_LIGHTS;
notifMgr.notify(1234, notif);  

它让 LED 只是永久的淡蓝色。
如果在那种状态下,我收到例如 google talk 消息,它的通知会覆盖我的 LED 状态,因此 LED 现在会闪烁白色(gtalk 默认)。
如果现在我的程序创建了另一个 LED 通知,由于某种原因它不会覆盖 gtalk LED 通知,因此 LED 会保持白色闪烁。

如何让我的通知覆盖其他 LED 通知?显然必须有办法,因为 gtalk 会覆盖我的 LED 状态。

谢谢!

【问题讨论】:

  • 当您在Notification 上请求 LED 时,您不应该假设设备的 任何 行为。有些设备没有 LED。一些设备制造商可能不会将 LED 分配给Notifications。一些设备制造商可能更喜欢固件(充电状态、聊天应用程序等)而不是 SDK 应用程序。以此类推。
  • 但至少程序“lightflow”似乎可以做到

标签: android notifications


【解决方案1】:

无论哪个应用程序首先发出通知,都会保持对 LED 的控制,直到它被该应用程序清除或用户清除它。

如果您的通知当前处于开启状态,您的描述听起来不正确,因为 gtalk 会覆盖您的通知。我是“lightflow”的作者,对此我了解一点

【讨论】: