我正在尝试使设备以VibrationEffect
类中定义的预定义模式振动,该模式具有EFFECT_CLICK
,EFFECT_POP
等模式。我注意到它们都由@hide
注释,似乎没有公开方法可以让我获取这些模式,VibrationEffect.get()
不起作用。
所以我应该如何获得这种模式?还是根本不可能?我还尝试深入研究Android源代码以找到这些模式,我对预定义的Ringtone振动模式特别感兴趣,但是我似乎找不到它们,我所能找到的只是定义振动的接口包。模式。如果我做错了,有人可以为我指出正确的方法吗?
您可以使用VibrationEffect.createPredefined(int)
获得任何模式,例如:
val vibrator = context?.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator
val effect: VibrationEffect = VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK)
vibrator?.vibrate(effect)
请注意,VibrationEffect.EFFECT_CLICK
可以用AOSP reference中提到的其他值替换。所需的最低API是29(Android 10)。