안녕하세요 열코입니다.

오늘은 안드로이드 앱에서 진동 사용하는 방법에 대해 알아보겠습니다.

이 진동 기능은 사용자에게 어떤 알림을 직관적으로 주기 위해 사용하는데요.

보통 기존에 앱에서는 소리와 진동을 함께 줌으로써 사용자에게 알림 확인을 극대화시킵니다.

따라서 이 진동 기능은 앱 개발에서 꼭 필요한 기능이라고 할 수 있습니다.

그렇다면 안드로이드 앱에서 진동 기능을 어떻게 구현하는지에 대해 알아보겠습니다.


다른 기능도 마찬가지지만 안드로이드에서 제공하는 기본적인 기능(카메라, 와이파이 등)을

사용하기 위해서는 권한이 필요합니다.

이 진동(Vibrate) 기능을 사용하기 위해서도 마찬가지인데요.


※ 진동 기능을 사용하기 위해 안드로이드 권한 얻는법

방법은 아주 간단합니다.

AndroidManifest.xml에 다음과 같은 코드를 추가합니다.

<uses-permission android:name="android.permission.VIBRATE" />


자 이제 안드로이드 앱에서 진동기능을 사용하기 위한 과정이 모두 끝났습니다.

정말 간단하죠?


이제 실제로 프로그램내에서 진동 기능을 사용하기 위한 방법에 대해 알아보겠습니다.

먼저 첫번째로 Vibrator 객체를 만들어주어야합니다.


진동 기능을 사용하려고 하는 코드쪽이나 클래스 상단부분에 다음과 같이 선언합니다.

private Vibrator vibrator;


다음 진동기능을 사용하려는 코드쪽에서 vibrator 객체를 다음과 같이 정의합니다.

 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);


이제 vibrator 객체를 통해 진동을 발생시키기만 하면 됩니다.

안드로이드에서 제공하는 Vibrator 객체의 진동 발생 방법은 두가지가 있습니다.

첫번째는 지정된 시간동안 진동하는 방법이고

두번째는 지정된 패턴으로 진동하는 방법입니다.


먼저 첫번째, 지정된 시간동안 진동하는 방법에 대해 알아보겠습니다.

vibrator.vibrate(1000); // 1초간 진동


이렇게 하면 끝입니다.

프로그램이 작동되다가 해당 코드를 만나면 1초간 진동이 발생합니다.

여기서 vibrate 함수의 매개변수로 1000을 주었는데,

이는 단위가 milisecond인 int형 매개변수로써, 1000 ms = 1s 입니다.

0.5초간 진동을 주고싶다면 1000대신 500을 입력하면 됩니다.



두번째로, 지정된 패턴으로 진동하는 방법입니다.

두번째 방법은 미리 패턴을 다음과 같이 지정 해 주어야합니다.

long[] pattern = {1000, 50, 1000, 50}; // 1초 진동, 0.05초 대기, 1초 진동, 0.05초 대기

vibrator.vibrate(pattern, -1);


위와같이 패턴을 설정할 때에는 진동, 대기, 진동, 대기... 이런 순으로 지정해주시면 됩니다.

만약 1초간 진동을 3번 울리고 싶으시면 3번 반복하시면 됩니다.

두번째 매개변수인 -1은 반복하지 않겠다는 설정입니다.

다시 말해 지정된 패턴동안 진동을 단 1번만 발생시키겠다는 뜻입니다.


만약 두번째 매개변수를 0으로 준다면 진동은 지정된 패턴으로 무한으로 진동하게 됩니다.

이를 멈추게 하기위해서는 다음과 같은 코드를 추가합니다.

vibrator.cancel();


추가로 단말기의 기본 알림음을 발생시키는 코드를 추가하여 진동+소리로 알릴 수 있습니다

Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), uri);

ringtone.play();



android vibrator에 대해 더 궁금하신 사항은 여기를 클릭하세요.


이상 '안드로이드 진동 기능 사용법'에 대해 알아보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!

공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.





to Top