Обновление :Я переделываю исходный пост для совместимости до Android 3.0.
Я пытаюсь создать простое уведомление, и все, кроме света, работает отлично. У меня экран выключен, когда срабатывает уведомление. При использовании этого устаревшего кода звук и вибрация работают на Android 4.0 (Galaxy Nexus )и Android 2.3 (HTC EVO ).
На Galaxy Nexus 4.0 не работает подсветка.
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;
Я также пробовал более новые API, которые не являются частью библиотеки совместимости v4, поэтому я смог проверить это только на 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, и ни на одном из них не работает подсветка. Экран выключен, когда я запускаю тесты, и все другие приложения на телефонах без проблем включают свет.