[안드로이드 / Kotlin] 진동

2022. 2. 13. 17:50·Android
반응형

앱을 개발하다보면 진동기능을 사용하는 경우가 종종 발생하곤 합니다.

오늘은 간단한 함수 한개를 통해 진동기능을 구현하는법에 대해 알아보도록 하겠습니다!

 

<소스코드>

 /**
 * 진동
 *
 * @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
'Android' 카테고리의 다른 글
  • [안드로이드 / Kotlin] 저전력 블루투스 BLE(2), 스캔
  • [안드로이드 / Kotlin] 저전력 블루투스 BLE(1), BLE란?
  • [안드로이드 / Kotlin] RecyclerView에 대한 고찰
  • [안드로이드 / Kotlin] Retrofit2
서주냥
서주냥
간단한 것도 기록하는 습관을 가지자
  • 서주냥
    DroidLog
    서주냥
  • 전체
    오늘
    어제
    • 전체보기 (58)
      • 알고리즘 (12)
        • 백준 (4)
        • 프로그래머스 (5)
        • 개념 (3)
      • Android (43)
        • Compose (1)
      • Java (2)
      • Kotlin (1)
  • 링크

    • GitHub
  • 인기 글

  • 태그

    reified
    뷰모델
    안드로이드
    최단 경로
    SnackBar
    Clean Architecture
    debounce
    벨만 포드
    Coroutine
    ConstraintLayout
    RecyclerView
    다이나믹 프로그래밍
    백준
    자바
    클린 아키텍처
    BLE
    Hilt
    viewmodel
    블루투스
    FusedLocationProviderClient
    textunit
    이진 탐색
    코루틴
    투 포인터
    moshi
    Coroutine Flow
    프로그래머스
    알고리즘
    코틀린
    viewpager2
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
서주냥
[안드로이드 / Kotlin] 진동
상단으로

티스토리툴바