设置振动,灯光或声音的组合,以便在android中进行通知

Ash*_*win 7 android android-notifications

我想为用户提供选择灯光,声音或振动或这三者的组合选项以进行提醒Notification.

在android文档中,我看到有一个选项可以DEFAULT_ALL在所有三种警报方法中使用.

否则就选择其中的任何一个(一个选项DEFAULT_LIGHTS,DEFAULT_VIBRATE,DEFAULT_SOUND).

是否有通过组合例如任何方式SOUNDVIBRATION,但没有LIGHTS和其他组合可制成?


编辑

Notification.Builder's(来自prolink007的回答)方法setDefaults(int default)说:

该值应该是以下一个或多个字段与按位或:DEFAULT_SOUND,DEFAULT_VIBRATE,DEFAULT_LIGHTS 结合使用.

该如何使用?

pro*_*007 20

Notification.Builder API 11NotificationCompat.Builder API 1提供设置这些类型的警报的几种不同的方法.

  • setLights(...)
  • setSound(...)
  • setVibrate(...)

该值应该是以下一个或多个字段与按位或:DEFAULT_SOUND,DEFAULT_VIBRATE,DEFAULT_LIGHTS结合使用.

没有经过测试,但我相信如果你愿意,你会做这样的事情SOUND,VIBRATION并且LIGHTS:

setDefaults(DEFAULT_SOUND | DEFAULT_VIBRATE | DEFAULT_LIGHTS);
Run Code Online (Sandbox Code Playgroud)


tra*_*nte 5

为了便于携带,我更喜欢NotificationCompat.
用户可能更喜欢他/她的默认值.在NotificationCombat中,您可以将振动,光线和声音设置为用户的默认设置,如下所示:

.setDefaults(-1)
Run Code Online (Sandbox Code Playgroud)

其中"-1"与DEFAULT_ALL匹配:http://developer.android.com/reference/android/app/Notification.html#DEFAULT_ALL

并非您必须请求VIBRATE权限,否则您将收到错误.将其添加到您的Android清单文件中:

<uses-permission android:name="android.permission.VIBRATE" />
Run Code Online (Sandbox Code Playgroud)


Rav*_*lla 5

我知道这个答案已经回答了一段时间,但只是想提供我的解决方案,它理想地适用于灯,振动和声音的多种组合,如果您为用户提供选项以启用或禁用它们.

int defaults = 0;
if (lights) {
    defaults = defaults | Notification.DEFAULT_LIGHTS;
}               
if (sound) {
    defaults = defaults | Notification.DEFAULT_SOUND;
}
if (vibrate) {
    defaults = defaults | Notification.DEFAULT_VIBRATE;
}
builder.setDefaults(defaults);
Run Code Online (Sandbox Code Playgroud)