728x90
반응형
진동세기를 사용자가 변경해서 진동을 발생 시킬 수 있는 앱을 만드는데 진동세기를 변경하는데 실제 느껴지는 진동의 세기는 변하지 않았습니다.
확인해보니 VibrationEffect(API>=26)를 지원하는 모든 장치에 실제로 진폭 제어 하드웨어가 있지는 않아서였습니다.
장치에 진폭 제어 기능이 있는지 확인하려면 hasAmplitudeControl 함수를 호출해보면 됩니다. 해당 함수의 return값이 true여야 진폭을 제어할 수 있는 하드웨어 입니다.
var vibrator: Vibrator? = null
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// API 레벨 31 이상에서는 VibratorManager를 사용
val vibratorManager = getSystemService(context, VibratorManager::class.java)
vibrator = vibratorManager?.defaultVibrator
Log.i("================", "This device has amplitude control: " + vibrator!!.hasAmplitudeControl())
} else {
// API 레벨 30 이하에서는 Vibrator를 사용
vibrator = getSystemService(context, Vibrator::class.java)
Log.i("================", "This device has amplitude control: " + vibrator!!.hasAmplitudeControl())
}
제가 가지고 있는 안드로이드폰은 false가 응답되었고 진폭을 제어할 수 없는 기기여서 조절이 안되었습니다.
참고자료
https://developer.android.com/reference/android/os/VibrationEffect
https://source.android.com/docs/core/interaction/haptics/haptics-ux-foundation?hl=ko
728x90
반응형
'개발 > 안드로이드앱' 카테고리의 다른 글
[Jetpack Compose] java.lang.IllegalArgumentException: Can't put value with type class 에러 해결 (0) | 2024.07.06 |
---|---|
[Jetpack Compose] 컴포즈 시 한번만 실행하기(리컴포지션 시 실행 안하기) (0) | 2024.07.06 |
진동 마사지 앱 개발 및 출시 (0) | 2024.06.28 |
구글 플레이 콘솔 앱 등록 실패 수정(잘못된 개인정보처리방침) (0) | 2024.06.25 |