2012-03-10 88 views
0

我投的LED通知這個直接的方式:覆蓋現有的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只是永久的淡藍色。
如果在這種狀態下,我收到例如谷歌通話信息,這是通知我覆蓋LED狀態,所以LED閃爍現在白(每增加一個默認值)。
如果現在我的程序創建另一個LED通知,由於某種原因,它不會覆蓋的gtalk LED通知,所以LED一直閃爍白色。

我怎樣才能讓我的通知覆蓋其他LED notivications?很明顯,必須有一種方法,因爲gtalk覆蓋了我的LED狀態。

謝謝!

+0

當你要求'Notification'上的LED時,你不應該假設設備的任何*行爲。有些設備沒有LED。一些設備製造商可能不會將LED分配給「通知」。一些設備製造商可能傾向於使用SDK應用程序的固件(充電狀態,聊天應用程序等)。等等。 – CommonsWare 2012-03-10 16:41:33

+0

但至少程序「lightflow」似乎是能夠做到這一點 – beutelfuchs 2012-03-10 17:23:47

回答

1

無論哪個應用程序引發通知,首先會保持對led的控制權,直到它被該應用程序清除或用戶清除爲止。

你說明聽起來不正確的gtalk覆蓋你的通知,如果你目前在。我對此有一點了解,因爲我是「lightflow」的作者