다이얼로그 / 알림 (2)

k_hyun·2023년 2월 4일
0

소리 알림

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를 통해 기본세기로 진동을 울리는 코드이다.

0개의 댓글