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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM