본문 바로가기
Android/안드로이드 스터디(JAVA)

JAVA] 안드로이드 진동 구현

by 김마리님 2023. 1. 19.

프로젝트 중에 안드로이드 진동을 구현해달라는 의뢰를 받았다.

진동 구현은 어렵지 않다.

 

먼저 AndroidManifest.xml에 진동 관련 퍼미션을 추가한다.

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

 

진동엔 두가지 방법이 있는데,

vibrate매서드에 넣는 값에 따라 달라지는데 

VibrationEffect.createOneShot(int milliseconds, int amplitude)는 시간과 강도를 조절할 수 있지만 API 26 이상에서만 동작한다.

(int milliseconds) 시간만 넣게 되면 강도는 조절할 수 없지만 API와 관계 없이 진동을 넣을 수 있다.

 

 

진동 예시

public class ExampleActivity extends AppCompatActivity {

    private ImageView imageViewExample;

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

        findView();
        setListener();

    }
    
    private void findView() {
        imageViewExample = findViewById(R.id.imageViewExample);
    }
    
    private void setListener() {

        imageViewExample.setOnClickListener(view -> {
            setVibrate();
        });
    }

    private void setVibrate() {
        Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            vibrator.vibrate(VibrationEffect.createOneShot(100, 50));
        } else {
            vibrator.vibrate(100);
        }
    }
}
반응형