티스토리 뷰

반응형
SMALL

안드로이드 진동 예제

 

<uses-permission android:name="android.permission.VIBRATE" />

 

 

Android 12 에서 VibratorManager 가 추가 되면서 낮은 os 서 부터 대응 하기 위해선 이렇게 분기 처리로 Vibrator 를 선언 해줘야 한다.

val vibrator: Vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
            val vibManager =
                getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
            vibManager.defaultVibrator
        } else {
            getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
        }

 

반응형

 

한번만 3초 동안 100의 크기의 진동을 준다.

val ANIM_DURATION = 3000L

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    vibrator.vibrate(VibrationEffect.createOneShot(ANIM_DURATION,100))
} else {
    vibrator.vibrate(ANIM_DURATION)
}

 

패턴이 들어간 진동

val pattern = longArrayOf(100, 200, 100, 100)

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    vibrator.vibrate(VibrationEffect.createWaveform(pattern, 0))	// 0: 무한, -1: 한번만
} else {
    vibrator.vibrate(pattern, 0)
}

 

반응형
LIST
댓글