为什么振动在Android P(API 28)上不起作用?

Mik*_*ike 2 android vibration kotlin haptic-feedback android-9.0-pie

我正在尝试在更改seekbar的值时实现触觉反馈。它可以在Android pre-P上正常运行。在Android P上根本不起作用。码:

private val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator?
private val effect by lazy { VibrationEffect.createOneShot(VIBRATION_DURATION, 50)}
...

fun vibrate() {
    if (vibrator == null || !vibrator.hasVibrator()) {
        return
    }
    vibrator.cancel()
    vibrator.vibrate(effect)
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 6

事实证明,用户必须在“设置”->“辅助功能”->“振动”->“触摸振动”中启用“触摸振动”:在此处输入图片说明

没有它,短时间的振动(少于5秒)将无法工作。对我来说,这不是很直观,所以我决定在此处发布