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