如何在 Kotlin 中让 Android 设备以不同频率和振幅振动?
大家好!我正在用 Kotlin 开发一个 Android 应用,遇到了控制振动的问题。我需要设备不仅仅是简单的“开/关”振动,而是能以不同的频率和强度(振幅)振动。例如,通知用短而弱的振动,闹钟用长而强的振动,游戏事件用渐强的脉冲振动。
我尝试过使用旧的 `Vibrator` 通过 `getSystemService`,但那里只有 `vibrate(long milliseconds)`——只能按指定时间振动,无法改变频率。我听说从 API 26(Android 8)开始有了 `VibratorManager` 和 `VibrationEffect`,但不知道如何正确创建复杂的模式。
这是我当前的代码,它能工作但缺乏灵活性:
```kotlin
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
if (vibrator.hasVibrator()) {
vibrator.vibrate(500) // 只是振动 0.5 秒
}
```
我需要:
1. 以特定频率振动(例如 100 Hz)。
2.