프로그래밍(programming)/안드로이드(android)
안드로이드 진동(Vibrate)과 소리내기(Ringtone) (210501)
하빌리즘
2021. 5. 1. 16:51
반응형
(210517 수정)
진동과 소리는 앱을 사용하는 사용자에게 무언가를 알려주는 가장 간단한 방법이다.
모바일 게임이나 일상생활에서 자주 사용하는 앱에서 쉽게 알 수 있다.
진동 기능을 구현하려면 "바이브 레이터(Vibrator)" 라는
시스템 서비스 객체를 사용해야한다.
이 객체의 "바이브 레이트(Vibrate)" 메소드로
진동이 울리는 시간과 음량을 설정할 수 있다.
먼저 진동이 가능하도록 매니페스트에 사용 권한을 주도록 하겠다.
<uses-permission android:name="android.permission.VIBRATE" />
이제 기능들을 구현해볼건데
이번에는 딱히 UI에는 신경 쓰지 않겠다.
단순하게 버튼을 누르면 스마트폰에서 진동이 일어나는 기능부터 알아보겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button vibe = (Button)findViewById(R.id.vibe);
vibe.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); // getSystemService를 이용해서 진동 기능을 가져와 Vibrator 객체를 참조함
if(Build.VERSION.SDK_INT >= 26) { // 안드로이드 버전 26부터 vibrate 메소드의 파라미터가 변경되었으므로 if문으로 최신버전과 과거버전 모두 작성
vibrator.vibrate(VibrationEffect.createOneShot(1000, 20)); // 지속시간과 음량
} else {
vibrator.vibrate(1000);
}
}
});
} } |
cs |
소리 기능을 구현하려면 "링턴(Ringtone)" 객체를 사용해서
API에서 제공하는 기본 소리를 재생할 수 있게 한다.
링턴 객체의 play() 메소드로 소리를 재생하는 것이다.
소리도 마찬가지로
버튼을 누르면 스마트폰에서 알람 소리가 나게 구현해볼 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sound = (Button)findViewById(R.id.sound);
sound.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); // RingtoneManager를 통해 기본 알림 소리를 가져옴
Ringtone ringtone = RingtoneManager.getRingtone(getApplicationContext(), uri); // Uri 객체를 전달하면 가져온 소리는 Ringtone객체를 참조함
ringtone.play(); // 소리 실행
}
});
}
}
|
cs |
정말 간단하지만 본인 스마트폰으로 직접 실행시켜보길 바란다.
피드백은 언제나 환영입니다.
반응형