Como fazer um dispositivo Android vibrar com diferentes frequências e amplitudes no Kotlin?
Olá a todos! Estou desenvolvendo um aplicativo para Android no Kotlin e me deparei com um problema de controle de vibração. Preciso que o dispositivo vibre não apenas "ligado/desligado", mas com diferentes frequências e intensidades (amplitude). Por exemplo, para notificações — uma vibração curta e fraca, para alarme — longa e forte, e para eventos de jogo — pulsante com aumento.
Tentei usar o antigo `Vibrator` via `getSystemService`, mas ele só tem `vibrate(long milliseconds)` — vibra por um tempo definido sem possibilidade de alterar a frequência. Ouvi dizer que com a API 26 (Android 8) surgiram `VibratorManager` e `VibrationEffect`, mas não consigo entender como criar padrões complexos corretamente.
Aqui está meu código atual, que funciona, mas não oferece a flexibilidade necessária:
```kotlin
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
if (vibrator.hasVibrator()) {
vibrator.vibrate(500) // apenas vibra por 0.5 segundos
}
```
Preciso de:
1. Vibrar com uma frequência específica (por exemplo, 100 Hz).
2.