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

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

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

Android Studio告诉我警告方法vibrate(interval)已弃用我应该使用VibrationEffect for API> 23。

所以我使用了VibrationEffect的方法createOneShot ,它采用2个参数:间隔和幅度。 在此处输入图像描述

我试着寻找它,但不知道要传递什么作为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); } } 

幅度是一个int值。 它的振动强度。 它必须是介于1和255之间的值,或DEFAULT_AMPLITUDE (-1)。

您可以将其用作VibrationEffect.DEFAULT_AMPLITUDE

更多细节在这里

您可以将此用于触觉反馈(振动):

 view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); 

HapticFeedbackConstants还有其他常量,如VIRTUAL_KEYKEYBOARD_TAP ……

这个库可以帮助你: https : //github.com/josephrubin/Rumble-4-Android

你需要的只是Rumble.once(150);

它为您处理API版本。