【问题标题】:Android notificationlight not working安卓通知灯不工作
【发布时间】:2012-04-27 22:05:35
【问题描述】:

我现在正在使用通知让用户知道服务仍在运行。现在我想使用通知灯来提醒用户。 (因为它很花哨)

通知工作正常,但通知灯没有任何作用。其他应用程序可以在通知灯下正常工作,(gtalk,facebook)

这或多或少是添加这些标志的通知示例代码:

notification.ledARGB = 0xff00ff00;
notification.ledOnMS = 100;
notification.ledOffMS = 100;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;

notification.flags |= Notification.FLAG_NO_CLEAR + Notification.FLAG_ONGOING_EVENT;
mNotificationManager.notify(NOTIFICATION_ID, notification);

notification.defaults |= Notification.DEFAULT_LIGHTS;

相反也不起作用。

我正在使用 Android 4.0 在 Galaxy Nexus 上进行调试,但应用的目标是 Android 2.3.3

编辑: 这可能是许可问题吗?如果是,是哪一个?我浏览了所有,发现没有匹配的通知灯权限。

【问题讨论】:

  • 必填“你确定你有正确的通知灯权限”
  • 好问题,我得到了吗?
  • 仍然无法正常工作...文档没有列出任何所需的灯光权限
  • 我的错误——你不需要权限。我会尝试将 ARGB 设置为 ffffffff 看看是否有区别
  • 刚刚试了一下,没有变化。

标签: android android-notifications


【解决方案1】:

我认为 + 运算符有错误,您需要 OR:

notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;

编辑:如果您使用标志,我认为正确的应该是:

notification.flags |= Notification.FLAG_SHOW_LIGHTS

【讨论】:

  • 这不是错误,而是功能!这些是要设置的位,加号可以正常工作。由于每个标志都是另一个位,因此您永远不会结转。但是 OR 可以正常工作。 FLAG_SHOW_LIGHTS 已设置,正如您在上面的代码块中看到的那样,根据文档,如果您使用 DEFAULT_LIGHTS 标志,则不需要它。
【解决方案2】:

在果冻豆设备上,仅当通知优先级设置为最大或默认时,led 才有效,请再次检查。在 jb 设备上遵循 sn-p 代码对我来说工作正常。

notification.setLights(0xFF0000FF,100,3000);
notification.setPriority(Notification.PRIORITY_DEFAULT);

在这里,我显示蓝色 LED 通知,在用户解锁设备之前,该 LED 将保持亮起 100 毫秒并熄灭 3000 毫秒。

并检查您是否使用 NotificationCompat(兼容性)类而不是忽略 setDefaults 方法并使用 SetLight、SetSound、Setvibration 等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多