Android vibrate 已被弃用。如何在 Android>= API 26 中使用 VibrationEffect?

我正在使用Android为按钮触摸提供触觉反馈。VIBRATOR_SERVICE

 ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(300);

Android Studio给我警告说,该方法已弃用,我应该用于API>23。vibrate(interval)VibrationEffect

所以我使用了需要2个参数的方法:间隔和振幅。VibrationEffectcreateOneShotenter image description here

我试图搜索它,但不知道要传递什么,因为有人知道如何使用它吗?amplitude

更新 添加的代码

// Vibrate for 150 milliseconds
private void shakeItBaby() {
    if (Build.VERSION.SDK_INT >= 26) {
        ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(VibrationEffect.createOneShot(150,10));
    } else {
        ((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(150);
    }
}

答案 1

与科特林

private fun vibrate(){
    val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
         vibrator.vibrate(VibrationEffect.createOneShot(200, VibrationEffect.DEFAULT_AMPLITUDE))
    } else {
         vibrator.vibrate(200)
    }
}

答案 2

振幅是一个整数值。它的振动强度。此值必须介于 1 和 255 之间,或者为 -1。DEFAULT_AMPLITUDE

您可以将其用作VibrationEffect.DEFAULT_AMPLITUDE

更多详情请点击这里


推荐