通知setLights()默认值?

我想创build一个自定义通知。 所以我想改变灯光和音调。 我使用NotificationCompat.Builder

现在我想通过setLights()更改灯光; 工作正常。 但是我想设置onMSoffMS的默认值。 我没有find这方面的东西。

任何人都可以帮我find默认值吗? 这里是该文档: http : //developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#setLights(int,int,int)

Solutions Collecting From Web of "通知setLights()默认值?"

查看Android源代码以获取答案:

 <!-- Default color for notification LED. --> <color name="config_defaultNotificationColor">#ffffffff</color> <!-- Default LED on time for notification LED in milliseconds. --> <integer name="config_defaultNotificationLedOn">500</integer> <!-- Default LED off time for notification LED in milliseconds. --> <integer name="config_defaultNotificationLedOff">2000</integer> 

不过不同的ROM可能有不同的值。 例如,mine为config_defaultNotificationLedOff返回5000 。 所以你可能想在运行时取出它们:

 Resources resources = context.getResources(), systemResources = Resources.getSystem(); notificationBuilder.setLights( ContextCompat.getColor(context, systemResources .getIdentifier("config_defaultNotificationColor", "color", "android")), resources.getInteger(systemResources .getIdentifier("config_defaultNotificationLedOn", "integer", "android")), resources.getInteger(systemResources .getIdentifier("config_defaultNotificationLedOff", "integer", "android"))); 

根据差异 ,这些属性保证在Android 2.2+(API级别8+)上存在。

你应该能够做到这一点:

 Notifictaion notf = new Notification.Builder(this).setXXX(...).....build(); notf.ledARGB = <your color>; notf.ledOnMS = <your value>; //or skip this line to use default notf.ledOffMS = <your value>; //or skip this line to use default 

基本上,不要在通知生成器上使用setLights 。 相反,先build立通知 – 然后你可以访问灯光的个别领域。

更新:这是从我的示例项目的实际复制/粘贴,编译和工作正常在android 2.1和使用蓝色的LED:

 Notification notf = new NotificationCompat.Builder(this) .setAutoCancel(true) .setTicker("This is the sample notification") .setSmallIcon(R.drawable.my_icon) .build(); notf.ledARGB = 0xff0000ff; NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(1, notf); 

@Aleks G不帮助。 我有从compat libaray最新的更新。 但是Eclipse说build()是不可用的。 我不知道为什么。 文件说是和你…

这是我现在的代码:

  NotificationCompat.Builder notify = new NotificationCompat.Builder(context); notify.setLights(Color.parseColor(led), 5000, 5000); notify.setAutoCancel(true); notify.setSound(Uri.parse(tone)); notify.setSmallIcon(R.drawable.ic_stat_kw); notify.setContentTitle("Ttiel"); notify.setContentText("Text"); Intent showIntent = new Intent(context, Activity_Login.class); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, showIntent, 0); notify.setContentIntent(contentIntent); NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(0, notify.getNotification()); 

完美运行。 但是在onMS setLights()不能使用默认的onMSoffMS 🙁