Android 振动已弃用。如何在 Android>= API 26 中使用 VibrationEffect?
随着 Android 系统的不断更新,一些旧的 API 被废弃,需要使用新的替代方法来实现相同的功能。在 Android API 26 及更高版本中,振动功能已被废弃,取而代之的是 VibrationEffect 类。在本文中,我们将介绍如何在 Android API 26 及更高版本中使用 VibrationEffect 来实现振动功能,并提供一个案例代码供参考。1. 引入 VibrationEffect 类在使用 VibrationEffect 类之前,我们需要在我们的项目中引入它。可以通过在项目的 build.gradle 文件中添加以下依赖项来实现:groovyimplementation 'com.android.support:v4:26.0.0'2. 创建振动效果要创建一个振动效果,我们可以使用 VibrationEffect.createOneShot() 或 VibrationEffect.createWaveform() 方法。createOneShot() 方法用于创建一个持续指定时间的振动效果,而 createWaveform() 方法用于创建一个指定模式和持续时间的振动效果。下面是一个使用 createOneShot() 方法创建振动效果的示例代码:
java// 导入 VibrationEffect 类import android.os.VibrationEffect;// 创建一个持续 500 毫秒的振动效果long milliseconds = 500;VibrationEffect vibrationEffect = VibrationEffect.createOneShot(milliseconds, VibrationEffect.DEFAULT_AMPLITUDE);3. 启动振动在创建了振动效果之后,我们需要调用 Vibrator 的 vibrate() 方法来启动振动。以下是一个完整的示例代码:
java// 导入 VibrationEffect 和 Vibrator 类import android.os.VibrationEffect;import android.os.Vibrator;import android.content.Context;public class MainActivity extends AppCompatActivity { private Vibrator vibrator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取 Vibrator 实例 vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // 创建一个持续 500 毫秒的振动效果 long milliseconds = 500; VibrationEffect vibrationEffect = VibrationEffect.createOneShot(milliseconds, VibrationEffect.DEFAULT_AMPLITUDE); // 启动振动 vibrator.vibrate(vibrationEffect); } @Override protected void onDestroy() { super.onDestroy(); // 停止振动 vibrator.cancel(); }}4. 添加自定义振动模式除了使用 createOneShot() 方法外,我们还可以使用 createWaveform() 方法来创建自定义的振动模式。createWaveform() 方法接受一个 long 类型的数组,用于指定振动的持续时间和间隔。以下是一个使用 createWaveform() 方法创建自定义振动模式的示例代码:
java// 创建一个自定义的振动模式long[] pattern = {0, 100, 200, 300, 400};int repeat = -1; // -1 表示不重复VibrationEffect vibrationEffect = VibrationEffect.createWaveform(pattern, repeat);在本文中,我们介绍了如何在 Android API 26 及更高版本中使用 VibrationEffect 来实现振动功能。我们学习了如何引入 VibrationEffect 类、创建振动效果以及启动振动。我们还提供了一个完整的案例代码来帮助读者理解如何在自己的项目中使用 VibrationEffect。希望本文对你有所帮助!