/** * * 2021/11/30 * @author xiaotie */ @SuppressLint("MissingPermission") class VibrateHelp(context: Context) { private var vibrator: Vibrator? = null init { this.vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator? } /** * * @ClassName VibrateHelp - 简单的震动 * @param milliseconds 振动的毫秒数。这必须是一个正数。 * @param amplitude 振动的强度。它必须是1到255之间的值,或者 VibrationEffect.DEFAULT_AMPLITUDE(-1)。 */ fun vSimple(milliseconds: Long, amplitude:Int) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { vibrator?.vibrate(VibrationEffect.createOneShot(milliseconds, amplitude)) }else{ vibrator?.vibrate(milliseconds) } } /** * * @ClassName VibrateHelp - 复杂的震动 * @param timings 交替开关时间的模式,从关闭开始。值为0将导致忽略时序 / 幅度序列。 * @param amplitude 振动的强度。它必须是1到255之间的值,或DEFAULT_AMPLITUDE。 * @param repeat 索引到重复的模式,如果你不想重复,则为-1。 */ fun vComplicated( timings: LongArray,amplitude: IntArray, repeat: Int) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { vibrator?.vibrate(VibrationEffect.createWaveform(timings,amplitude,repeat)) }else{ vibrator?.vibrate(timings,repeat) } } /** * @ClassName:VibrateHelp - 停止震动 */ fun stop() { vibrator?.cancel() } }