2016-11-16 59 views
0

我正在開發用於通知的LED測試應用程序。收到通知時,我想打開/閃爍LED。我的Android設備顯示屏在我的屏幕上顯示,但是我沒有看到LED正在閃爍。在Android M上打開LED通知

以下是在onCreate方法我通知代碼

Notification notf = new Notification.Builder(this) 
      .setAutoCancel(true) 
      .setLights(0xff0000, 5000, 100) 
      .setContentTitle("Notification") 
      .setContentText("Test") 
      .setContentTitle("Akshay") 
      .setSmallIcon(R.drawable.ic_launcher) 
      .build(); 

    notf.flags |= Notification.FLAG_SHOW_LIGHTS; 

    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(2, notf); 

我是否需要添加任何許可頂我的清單文件或執行任何Android類,使其工作?

回答

0

setLights()是一個請求,而不是一個命令。由設備製造商—決定,還是由誰創建在設備—上運行的Android版本,無論是否使用LED進行通知。該設備還可以基於其他因素改變其方法(例如,使用LED來顯示充電狀態,並且僅在設備未被充電時用於通知)。

+0

廠家專用這些LED只用於通知目的。 – Akshay

0

https://developer.android.com/reference/android/app/Notification.html解釋說 爲FLAG_SHOW_LIGHTS

由於硬件不同,你不能保證任何 傳遞是否完全兌現價值。如果可能,使用系統默認值 ,因爲它們將設置爲適用於任何給定硬件的值。

INT FLAG_SHOW_LIGHTS

位被按位或爲,如果你想此通知的LED上應設置標誌字段。

要關閉LED,請在colorARGB的alpha通道中傳遞0,在ledOnMS和ledOffMS中傳遞0。 要打開LED,請爲ledOnMS傳遞1,爲ledOffMS傳遞0。 要使LED閃爍,請將應該打開和關閉的毫秒數傳遞給ledOnMS和ledOffMS。