안드로이드 12 (target 31) 에서 새롭게 VIBRATOR_MANAGER_SERVICE가 추가되어 기존에 사용하던 VIBRATOR_SERVICE가 deprecated 되었다.
VibratorManager 선언하기 (버전 분기)
val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val manager = getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
manager.defaultVibrator
} else {
@Suppress("DEPRECATION")
getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
}
vibrate 사용
button1.setOnClickListener {
val pattern = longArrayOf(500L, 1000L, 500L, 2000L)
if (Build.VERSION.SDK_INT >= 26) {
vibrator.vibrate(VibrationEffect.createWaveform(
pattern,
intArrayOf(30, 50, 100, 200),
-1))
} else {
vibrator.vibrate(pattern, -1)
}
}
'프로그래밍 > android' 카테고리의 다른 글
android ActionBar MenuItem uppercase issue (0) | 2022.02.28 |
---|---|
[android] JWT 토큰 구하기 (json web token) (0) | 2022.01.12 |
[android] apk decompile (안드로이드 apk 디컴파일) (0) | 2021.11.30 |
[Android 12] Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE (0) | 2021.11.18 |
[android] 안드로이드 태블릿 구분하기 (feat. 코틀린) (0) | 2021.09.14 |