更新:我正在修改原始帖子以实现 Android 3.0 之前的兼容性。
我正在尝试创建一个简单的通知,除了灯光之外的一切都很好。当通知触发时,我确实关闭了屏幕。在 Android 4.0 (Galaxy Nexus) 和 Android 2.3 (HTC EVO) 上使用此已弃用的代码声音和振动。
- 在 2.3 HTC EVO 上,灯也可以工作。
在 4.0 Galaxy Nexus 上,灯不工作。
Notification notification = new Notification(R.drawable.ic_launcher, "My Ticker!",System.currentTimeMillis()); notification.setLatestEventInfo(context, "My Title", "My Message", pendingIntent); notification.defaults |= Notification.DEFAULT_SOUND; notification.defaults |= Notification.DEFAULT_VIBRATE; //notification.defaults |= Notification.DEFAULT_LIGHTS; notification.ledARGB = 0xff00ff00; notification.ledOnMS = 300; notification.ledOffMS = 1000; notification.flags |= Notification.FLAG_SHOW_LIGHTS; notification.flags |= Notification.FLAG_AUTO_CANCEL;
我还尝试了不属于 v4 兼容性库的更新 API,所以我只能在 Galaxy Nexus 上进行测试。振动和声音再次起作用,但灯光不起作用。
Notification.Builder builder = new Notification.Builder(context);
builder.setContentIntent(pendingIntent)
.setSmallIcon(R.drawable.ic_launcher)
.setTicker("My Ticker")
.setWhen(System.currentTimeMillis())
.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_VIBRATE | Notification.DEFAULT_SOUND | Notification.FLAG_SHOW_LIGHTS)
.setLights(0xff00ff00, 300, 100)
.setContentTitle("My Title 1")
.setContentText("My Text 1");
Notification notification = builder.getNotification();
我现在已经在两部 Galaxy Nexus 手机上进行了测试,但两者都没有。当我运行测试时屏幕关闭,手机上的所有其他应用程序都可以毫无问题地触发灯光。