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

新手上路,请多包涵

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

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

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

所以我使用 VibrationEffect 的方法 createOneShot 它有两个参数:间隔和振幅。 在此处输入图像描述

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

原文由 Hitesh Sahu 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

振幅是一个 int 值。它的振动强度。这必须是 1 到 255 之间的值,或者 DEFAULT_AMPLITUDE -1。

您可以将其用作 VibrationEffect.DEFAULT_AMPLITUDE

更多细节 在这里

原文由 Kapil G 发布,翻译遵循 CC BY-SA 3.0 许可协议

与科特林

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)
    }
}

原文由 aolphn 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题