获取震动器
val vibrator = (context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator)
调用震动
vibrator.vibrate(VibrationEffect.createOneShot(200, VibrationEffect.DEFAULT_AMPLITUDE))
其中参数 200表示震动200毫秒,DEFAULT_AMPLITUDE表示震动效果为默认
从方法可以看出,震动效果主要用VibrationEffect操作,VibrationEffect属性和方法如下:
震动效果,总共有5个
VibrationEffect.DEFAULT_AMPLITUDE 默认效果
VibrationEffect.EFFECT_CLICK 点击效果
VibrationEffect.EFFECT_DOUBLE_CLICK 双击效果
VibrationEffect.EFFECT_HEAVY_CLICK 震动效果更强
VibrationEffect.EFFECT_TICK 滴水效果
提供的方法,主要方法有两个
单发振动
createOneShot(long milliseconds, int amplitude)
milliseconds:震动时间(毫秒),amplitude表示震动效果,即上面那5种
波形振动
createWaveform(long[] timings, int[] amplitudes, int repeat)
timings:震动替换倒计时,从停止开始,依次为停->震->停->震……,比如 {10000,20000,30000,40000} 表示 停10秒 震20秒 停30秒 震40秒
amplitudes:震动幅度,数值0 - 255 ,0表示不震动,255震感最强
repeat:引索,-1表示震动一次,其他表示重复震动
repeat这个值有点特别,repeat = -1时会依次震动一次,repeat = 0 时不停重复震动,其他值时,会先从0-引索间跳过停止时间仅保留震动时长,并且在引索后不停重复,比如:timings = {10000,20000,30000,40000},repeat = 2表示先震动20秒,再重复30秒->40秒