2013-01-17 32 views
1

我已經編寫了一個小測試應用程序(藉助Stack Overflow中給出的先前實現的示例),它將打開我平板電腦上的通知LED。當我在平板電腦上測試此應用程序時,它不能按需要工作,即LED會打開很短的時間(而不是我在程序中提到的5秒鐘)。我猜想它需要系統默認值的持續時間,LED需要開/關,而不是採取我的應用程序中指定的值。有沒有人看過類似的問題?有沒有辦法讓我重寫這個系統特定的值?我的代碼如下:如何覆蓋指示燈亮起時的系統默認值

public class SampleActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sample); 
    RedFlashLight(); 
} 

private void RedFlashLight() 
{ 
    NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    Notification notif = new Notification(); 
    notif.ledARGB = Color.RED; 
    notif.flags = Notification.FLAG_SHOW_LIGHTS ; 
    notif.ledOnMS = 5000; //5 seconds 
    notif.ledOffMS = 0; //do not turn it off 
    nm.notify(10, notif); 
} 


} 

回答

1

有沒有辦法讓我重寫此係統特定的值?

超越你已經在做什麼?

熊號記:

  • 並非所有的設備都有LED指示燈
  • 不就是有LED將一定要用他們的通知
  • 設備製造商,否則可以忽略Notification請求的所有設備對象,如LED的顏色

所以,你可以問任何你想要的,你是否得到它將取決於設備。

+0

我看到了,我在我的摩托羅拉手機上測試了這個應用程序,它工作正常,但是在摩托羅拉的XYboard上它不起作用。那麼這意味着相同的製造商和不同的硬件行爲是不同的?有沒有其他方法可以使LED長時間保持開啓狀態? – sim

+0

@ user1932046您甚至可能以不同的版本製造商提供的固件在同一設備上執行不同的操作。不幸的是,你絲毫不能依賴它。 – Kitsune

+0

@ user1932046:「那麼這意味着相同的製造商和不同硬件的行爲是不同的?」 - 當然。甚至在固件更新之前和之後,相同的設備可能會有不同的表現。 LED行爲完全取決於設備製造商。你只能提出可能會或可能不會被尊重的事情。 「有沒有其他方法可以讓LED長時間持續亮起?」 - 不,對不起。再次,請記住,許多設備根本沒有LED。 – CommonsWare