Android 震动器操作类

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

 

posted @ 2021-11-30 10:23  勤奋的小铁  阅读(818)  评论(0编辑  收藏  举报