/** * * 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() } }