이 글에서는
개발자의 "사용자 정의 커스텀" 진동의 패턴 설정 및 반복 실행 방법을 정리한다.
안드로이드의 기본(1회) 진동 설정 방법은 아래글을 참고
[안드로이드: Java/Kotlin] 진동 실행 구현 방법: Vibrator, VibrationEffect
안드로이드 시스템 제공 진동패턴 사용방법은 아래글 참고
[안드로이드 Java/Kotlin]시스템 기본 제공 진동패턴 사용 방법: createPredefined
1. permission 추가
ActivityManifest.xml 파일에 진동 퍼미션을 추가한다.
- <uses-permission android:name="android.permission.VIBRATE"></uses-permission>
2. Vibrator 객체 얻어오기
안드로이드가 제공하는 SystemService에서 Vibrator 객체를 얻어온다.
- Java: (Vibrator)getSystemService(VIBRATOR_SERVICE);
- Kotlin: getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
3. 진동 실행(+패턴과 반복 설정)
배열로 진동의 패턴과 강도를 설정해주고, 정수 값으로 반복 여부를 설정한다.
- Java: public static VibrationEffect createWaveform (long[] timings, int[] amplitudes, int repeat)
- Kotlin: open static fun createWaveform( timings: LongArray!, amplitudes: IntArray!, repeat: Int): VibrationEffect!
1) timings: 패턴(대기/진동시간) 설정
: [대기시간ms, 진동시간ms, 대기시간ms, 진동시간ms, ... ]
2) amplitudes: 강도 설정
: [0, 진동강도, 0, 진동강도, ...]
: 생략시 디폴트 강도가 적용됨
3) repeat: 반복 설정
: -1은 반복 X. 1회만 울리고 반복하지 않는다.
: 0무한 반복. cancel()메서드를 호출하기 전까지 무한 반복한다.
* 반복의 중단은 Vibrator객체.cancel() 메서드를 호출한다.
- 예시 코드 (Java)
// Vibrator 객체
Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);
// 1) 패턴
long[] pattern = {2000, 1000, 2000, 2000}; // 2000ms 대기, 1000ms 진동, 2000ms 대기, 2000ms 진동
// 2) 강도
int[] amplitudes = {0, 100, 0, 200}; // 대기, 100강도, 대기, 200 강도
// 3) VibrationEffect 생성(-1: 반복X(
VibrationEffect vibrationEffect = VibrationEffect.createWaveform(pattern, amplitudes, -1);
// 4) 진동 발생
vibrator.vibrate(vibrationEffect);
- 예시 코드 (Kotlin)
// Vibrator 객체
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator;
// 1) 패턴
val pattern = longArrayOf(2000, 1000, 2000, 2000) // 2000ms 대기, 1000ms 진동, 2000ms 대기, 2000ms 진동
// 2) 강도
val amplitudes = intArrayOf(0, 100, 0, 200) // 대기, 100강도, 대기, 200 강도
// VibrationEffect 생성(반복X)
val vibrationEffect = VibrationEffect.createWaveform(pattern, amplitudes, -1)
// 진동 실행
vibrator.vibrate(vibrationEffect)
* repeat 매개변수를 0으로 주면 진동이 무한 반복되며, Vibrator객체의 cancel()메서드를 호출해야 중단된다.
'개발(Development) > Android(안드로이드)' 카테고리의 다른 글
[안드로이드 Java/Kotlin] 시스템 효과음 재생 방법: Ringtone (0) | 2021.07.15 |
---|---|
[안드로이드 Java/Kotlin]시스템 기본 제공 진동패턴 사용 방법: createPredefined (0) | 2021.07.15 |
[안드로이드] Button 영어 대문자만 표시될 때 소문자 변경 방법 (0) | 2021.07.15 |
[안드로이드 Java/Kotlin] 진동 실행 구현 방법: Vibrator, VibrationEffect (0) | 2021.07.15 |
[안드로이드] 스마트폰 기기 연결/빌드/실행하는 방법 (0) | 2021.07.15 |
댓글