Disable vibration for a notification

前端 未结 7 1168
北荒
北荒 2020-12-09 15:11

I\'m writing an app using notification. Google developer guidelines encourages developers to provide settings to customize the notifications (disable vibration, set notifica

7条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-09 16:02

    After a long trial & error session, I think I finally understood what's wrong.

    The problem lies in this instruction notificationBuilder.setDefaults(Notification.DEFAULT_ALL).

    No matter what parameter you pass to notificationBuilder.setVibrate() after setting DEFAULT_ALL or DEFAULT_VIBRATE will be silently discarded. Someone at Google must have decided to give a higher precedence to setDefaults than to setVibrate.

    This is how I ended up disabling vibration for notifications in my app:

    notificationBuilder.setDefaults(Notification.DEFAULT_LIGHT | Notification.DEFAULT_SOUND)
                       .setVibrate(new long[]{0L}); // Passing null here silently fails
    

    This works but doesn't feel right to initialize a new long[] just to disable the vibration.

提交回复
热议问题