Vibrator - 진동 울리기
안드로이드의 Vibrator 객체를 사용하여, 원하는 패턴의 진동을 만들어 내고, 컨트롤 하는 예제를 만들어 봅니다.
Step 1 : Manifect 에 Vibrator 권한을 획득해야 합니다.
Step 2 : Vibrator 객체 획득
Step 3 : vibrate() 메소드로 진동시작, cancel() 메소드로 진동취소
1. 퍼미션 설정
<!-- 진동-->
<uses-permission android:name="android.permission.VIBRATE" />
2. xml코드
3. JAVA코드
진동을 위한 Vibrator라는 SystemService가 제공되기 때문이다.
Vibrator 객체를 획득하여 vibrate() 함수 호출로 간단하게 진동을 울릴 수 있다.
4. 번외
진동을 여러번 반복해서 울려야 하는 때
vibrate(long[] pattern, int repeat) 사용 하면 된다.
진동을 계속 울리게 하려면 매개변수 부분이 중요하다,
첫번째 - 매개변수가 long 형 배열이고, 배열에 값은
홀수번째 값이 대기시간,
짝수번째 값이 진동시간이다
두번째 - 매개변수는 이 패턴으로 진동 울리기를 몇변 반복할 것인가의 설정이다,
0주면 취소 할때까지 무한반복,
-1주면 한번만 패턴대로 진동이 울린다.
이렇게 하면,
처음 진동 울리고 0.5초 대기 후, 1초 진동, 다시 0.5초 대기 후 1초 진동이다.
-1이니깐 반복 안함
5. 번외
만약, vibrate() 두번째 매개변수를 0을 주어서 무한반복 상태라고 한다면,
cancel() 을 주어서 멈추면 됩니다.
6. 전체 코드
public class Delvibrator extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
Button b1 = (Button)findViewById(R.id.button1);
Button b2 = (Button)findViewById(R.id.button2);
Button b3 = (Button)findViewById(R.id.button3);
Button b4 = (Button)findViewById(R.id.button4);
// 진동
// 1. 진동 권한을 획득해야한다. AndroidManifest.xml
// 2. Vibrator 객체를 얻어서 진동시킨다
final Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);
// 5초진동
b1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
vibrator.vibrate(5000); // 5초
}
});
// 지정한 패턴으로 진동
b2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
long[] pattern = {100,300,100,700,300,2000}; // 대기,진동,대기,진동,..
vibrator.vibrate(pattern,-1); // 진동 패턴, 반복 인덱스
// 0 : 무한반복, -1: 반복없음,
// 양의정수 : 진동패턴배열의 해당 인덱스부터 진동 무한반복
}
});
// 무한반복으로 진동
b3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
vibrator.vibrate(new long[]{100,1000,100,500,100,500,100,1000}, 0);
}
});
// 진동 취소
b4.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
vibrator.cancel();
}
});
}
}
'■ Android > Tip' 카테고리의 다른 글
[Android] 개발자 임의의 효과음 (0) | 2019.12.20 |
---|---|
[Android] Ringtone - 소리 울리기 (시스템 효과음) (0) | 2019.12.20 |
[Android] Realm 사용법 (0) | 2019.12.18 |
[Android] SQLite - 내용 3 (사용법) (0) | 2019.12.17 |
[Android] SQLite - 내용 2 (0) | 2019.12.16 |