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