안드로이드 개발 Vibration 이용해서 스마트폰 진동 설정하는 방법

 

환경: Eclipse Mars, Android 4.2.2

 

스마트폰에서 진동은 벨소리와 함께 사용자에게 뭔가를 알리고 싶을 때 사용합니다. 메시지 혹은 전화를 받거나 동작을 잘못하는 경우에 주로 이용하고 있습니다. 이렇게 다양하게 쓰이는 기본적인 기능인 진동을 구현하는 방법에 대해 알아 보겠습니다.

 

진동을 구현하는 방법은 아주 간단합니다. 2가지만 설정하면 되는데 java 소스에서는Vibration 클래스를 이용하며, AndroidManifest.xml 파일에 진동이 가능하도록 permission 을 추가합니다. getSystemService() 함수를 사용해서 Vibrator 객체를 얻어옵니다. 그리고 vibrate() 함수를 실행하면 진동을 일으킬 수 있는데 인수로 넘어가는 숫자는 진동 시간입니다. 단위는 ms 이며, 500ms 0.5초가 됩니다. 

Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibe.vibrate(500);

두 번째는 AndroidManifest.xml 에 진동이 될 수 있도록 permission 설정을 해 줍니다.

<!-- AndroidManifest.xml 등록하기  -->
<uses-permission android:name="android.permission.VIBRATE" />

 

스마트폰에서 테스트 할 수 있도록 전체 소스와 xml 을 올렸습니다. 참고하시기 바랍니다.

 

VibrationActivity.java

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.example.sampleandroidinfo.R;

public class VibrationActivity extends Activity implements
		OnClickListener {

	private Button button;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_vibration);

		button = (Button) findViewById(R.id.btn_alert);

		// 클릭 이벤트
		button.setOnClickListener(this);
	}

	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_alert:
			Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
			vibe.vibrate(500);
			break;

		default:
			break;
		}
	}
}

 

activity_vibration.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#3F0099"
        android:gravity="center"
        android:paddingBottom="@dimen/abc_action_bar_icon_vertical_padding"
        android:paddingTop="@dimen/abc_action_bar_icon_vertical_padding"
        android:text="Vibration 으로 진동 설정하기"
        android:textColor="#FFFFFF" />
    
    <Button
        android:id="@+id/btn_alert"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="진동 시작" />
 
</LinearLayout>

 

안드로이드(Android) Vibration 이용해서 스마트폰 진동 설정하는 방법

 

Posted by 녹두장군