[안드로이드 / 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
  • 인기 글

  • 태그

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

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.