반응형
앱을 개발하다보면 진동기능을 사용하는 경우가 종종 발생하곤 합니다.
오늘은 간단한 함수 한개를 통해 진동기능을 구현하는법에 대해 알아보도록 하겠습니다!
<소스코드>
/**
* 진동
*
* @param context
* @param time // 진동주기
* @param amplitude // 진동세기
* @param useAmp // 진동세기 사용여부(오레오 이상)
*/
fun startVibration(context: Context, time: Long, amplitude: Int = 50, useAmp: Boolean = true) {
val vibrator =
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vm = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
vm.defaultVibrator
} else {
context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
}
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && useAmp) {
val effect = VibrationEffect.createOneShot(time, amplitude)
vibrator.vibrate(effect)
} else {
vibrator.vibrate(time)
}
}
- 안드로이드 31이상(S)부터 기존에 사용하던 Vibrator클래스가 deprecated되어,
VibratorManager를 이용해 생성해야합니다.
- 안드로이드 26이상(O)부터 VibrationEffect.createOneShot()을 이용해서 진동주기 및 세기를 지정할 수 있습니다.
26미만은 vibrate()를 이용해 진동주기를 지정할 수 있습니다.
안드로이드 버전에만 유의하면 위와같이 간단하게 진동기능을 구현하실 수 있습니다!
반응형
'Android' 카테고리의 다른 글
[안드로이드 / Kotlin] 저전력 블루투스 BLE(2), 스캔 (0) | 2022.02.28 |
---|---|
[안드로이드 / Kotlin] 저전력 블루투스 BLE(1), BLE란? (0) | 2022.02.27 |
[안드로이드 / Kotlin] RecyclerView에 대한 고찰 (0) | 2022.01.22 |
[안드로이드 / Kotlin] Retrofit2 (0) | 2022.01.15 |
[안드로이드 / Kotlin] 생체 인식 인증 사용하기 (0) | 2022.01.07 |