I'm trying to make the device vibrate in a pre-defined pattern, which is defined in the VibrationEffect
class, with patterns like EFFECT_CLICK
, EFFECT_POP
, and others. I noticed that they are all annotated by @hide
, It seems like there's no public method for me to get these patterns, VibrationEffect.get()
doesn't work.
So how should I get such patterns? Or is it not possible at all? I also tried to dig into the Android source code to find these patterns, I'm particularly interested in the pre-defined Ringtone vibration patterns, but I can't seem to find them, all I can find is the interface package that defines vibration patterns. Can someone point me the right way if I'm doing this wrong?
You can obtain any pattern using VibrationEffect.createPredefined(int)
, example:
val vibrator = context?.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator
val effect: VibrationEffect = VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK)
vibrator?.vibrate(effect)
Note that VibrationEffect.EFFECT_CLICK
can be replaced with other values that are mentioned in AOSP reference. Minimal required API is 29 (Android 10).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With