안드로이드에서는 이벤트가 발생했을 때, 소리로 알려주거나, 진동으로 알려줍니다.
진동을 사용하는 방법을 알아보겠습니다.
1. 진동권한 추가하기
manifests -> AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />
2. 진동기능 메소드 만들기
안드로이드 버전에 따른 진동설정 방법이 다릅니다.
안드로이드 버전 8.0 부터는 진동시간과 진동세기를 조절할 수 있습니다.
그 이전 버전은 시간만 조절합니다.
/**
* 진동
* @param millisecond 울리는 시간
* @param amplitude 진동세기
*/
public void vibrator(int millisecond, int amplitude){
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
//안드로이드버전 8.0이상
if(Build.VERSION.SDK_INT >= 26){
vibrator.vibrate(VibrationEffect.createOneShot(millisecond,amplitude)); //시간, 진동세기
Log.d("Main", "26이상");
}else{
vibrator.vibrate(millisecond);
Log.d("Main", "26이하");
}
}
3. 화면 만들기
진동시간과 진동세기를 입력할 수있는 EditText와 기능을 실행 할 버튼을 만들어 줍니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/inputMillisecond"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="진동시간"
/>
<EditText
android:id="@+id/inputAmplitude"
android:layout_marginTop="20dp"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="진동세기"
/>
<Button
android:id="@+id/btn1"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="진동"
/>
</LinearLayout>
</LinearLayout>
4. 진동 메소드 사용하기 (예: MainActivity.java)
EditText inputMillisecond;
EditText inputAmplitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
inputAmplitude = findViewById(R.id.inputAmplitude);
inputMillisecond = findViewById(R.id.inputMillisecond);
int millisecond = Integer.parseInt(inputMillisecond.getText().toString());
int amplitude = Integer.parseInt(inputAmplitude.getText().toString());
vibrator(millisecond*1000, amplitude);
}
});
}
[안드로이드] 포커스이벤트 setOnFocusChangeListener (0) | 2020.05.28 |
---|---|
[안드로이드] 입력데이터 변화 이벤트 예제 [addTextChangedListener] (0) | 2020.05.25 |
[안드로이드] 네 번째 안드로이드앱 개발 - 자전거대여정보 (0) | 2020.04.29 |
[안드로이드] 네이버맵, 카카오맵 연동시 설치여부 체크 (0) | 2020.04.26 |
[안드로이드] 세 번째 안드로이드 앱 개발[전국도서관정보앱] (0) | 2020.04.21 |
댓글 영역