安卓通知灯不工作

6

我正在使用通知来提醒用户服务仍在运行。现在,我想使用通知灯提醒用户(因为它很时尚)。

通知正常工作,但通知灯没有反应。其他应用程序可以正常使用通知灯(如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。

编辑: 这可能是权限的问题吗?如果是,是哪一个?我已经查看了所有权限,没有找到匹配通知灯的权限。


请确认您是否拥有通知灯的正确权限。 - antlersoft
好问题,我从哪里获取它们? - trichner
1
仍然无法工作...文档中没有列出灯所需的任何权限。 - trichner
我的错误——你不需要这个权限。我建议尝试将ARGB设置为ffffffff,看看是否有所改变。 - antlersoft
尝试将ledOnMS增加到约3000。 - Bartosz Przybylski
显示剩余2条评论
2个回答

2
我认为+运算符存在错误,应该使用OR:
notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;

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

notification.flags |= Notification.FLAG_SHOW_LIGHTS

这不是错误,而是特性!那些是要设置的位,加号运算正常工作。由于每个标志都是另一个位,你永远不会得到进位。但是OR操作将正常工作。如上方代码块所示,FLAG_SHOW_LIGHTS已设置,根据文档,如果使用DEFAULT_LIGHTS标志,则不需要它。 - trichner

2

在果冻豆设备上,只有当通知优先级设置为最高或默认时,LED指示灯才能正常工作,请再次检查。以下代码片段在我使用的果冻豆设备上运行良好。

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

我在这里展示了蓝色的LED指示灯,用于通知,它会持续亮100毫秒,然后在用户解锁设备前熄灭3000毫秒。

如果您正在使用NotificationCompat(兼容性)类,请忽略setDefaults方法,而是使用SetLight、SetSound、Setvibration等方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接