Avatar ·

¿Cómo hacer vibrar un dispositivo Android con diferente frecuencia y duración en Kotlin?

¡Hola a todos! Soy un desarrollador Android principiante en Kotlin. Estoy escribiendo una aplicación de alarma simple y necesito agregar vibración. El problema es que quiero que la vibración no sea uniforme, sino que varíe: primero pulsos cortos, luego largos, con diferente frecuencia. ¿Cómo puedo hacer esto?

Actualmente tengo este código, pero funciona de manera muy primitiva: simplemente activa la vibración por un tiempo fijo:

class MainActivity : AppCompatActivity() {
    private lateinit var vibrator: Vibrator

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
        vibrator.vibrate(1000) // simplemente vibra por 1 segundo
    }
}

He leído sobre VibrationEffect y VibratorManager en las nuevas APIs, pero estoy confundido. ¿Hay alguna manera de crear un patrón de vibración complejo? Por ejemplo,