Avatar ·

Como fazer um dispositivo Android vibrar com diferentes frequências e durações em Kotlin?

Olá a todos! Sou um desenvolvedor Android iniciante em Kotlin. Estou escrevendo um aplicativo de alarme simples e preciso adicionar vibração. O problema é que quero que a vibração não seja apenas uniforme, mas que mude: primeiro pulsos curtos, depois longos, com diferentes frequências. Como fazer isso?

Atualmente, tenho este código, mas ele funciona de forma muito primitiva — apenas ativa a vibração por um tempo fixo:

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) // apenas vibra por 1 segundo
    }
}

Li sobre VibrationEffect e VibratorManager nas novas APIs, mas fiquei confuso. Existe alguma maneira de criar um padrão de vibração complexo? Por exemplo,