val notification: Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
val ringtone = RingtoneManager.getRingtone(applicationContext, notification)
ringtone.play()
RingtonManager.getDefaultUri() 를 통해 소리의 식별값은 얻는다.
이를 getRington의 두 번째 매개변수로 전달하여 Ringtone 객체를 얻는다.
play() 함수를 통해 소리를 재생시킨다.
음원 폴더는 res/raw에 저장된다.
음원을 재생하는 클래스는 MediaPlayer이다.
아래와 같이 작성하여 해당 음원을 재생시킬 수 있다.
val player: MediaPlayer = MediaPlayer.create(this, R.raw.음원)
player.start()
<uses-permission android:name="android.permission.VIBRATE" />
진동은 퍼미션을 얻어야만 사용할 수 있다. 따라서 매니페트스 파일에 위 내용을 작성한다.
val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager = this.getSystemService(Context.VIBRATOR_MANAGER_SERVICE)
as VibratorManager
vibratorManager.defaultVibrator;
} else {
getSystemService(VIBRATOR_SERVICE) as Vibrator
}
31 버전부터는 VibratorManager라는 시스템 서비스를 얻고 이 서비스에서 Vibrator를 이용해야 한다.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vibrator.vibrate(
VibrationEffect.createOneShot(500,
VibrationEffect.DEFAULT_AMPLITUDE)
)
} else {
vibrator.vibrate(500)
}
vibrator를 통해 기본세기로 진동을 울리는 코드이다.