카톡 알림음 같은 경우는 해당 기업이 자체 음원을 사용한 것이고 기본적으로 안드로이드 시스템에 등록된 음원을 사용할 수도 있다.
3가지 알림음을 RintoneManager
를 통해 사용할 수 있다.
NOTIFICATION
: 알림ALARM
: 알람RINGTONE
: 벨소리RingtoneManager.getDefaultUri()
함수를 통해 소리의 식별값(Uri
객체)을 얻는다.RingtonManager.getRingtone()
함수의 두 번째 매개변수로 전달하면 소리를 재생하는 Ringtone
객체를 얻는다.play()
함수를 통해 소리가 재생된다.자체 음원을 사용하기 위해서는 일단 자체 음원 파일이 있어야 하고 그 파일을 리소스 디렉터리에 넣어야 한다. res
폴더에 raw
라는 디렉터리를 새로 생성해서 사용하면 된다.
예를 들어, 음원파일 ringcall001.mp3
이 있다면, 아래처럼 사용하면 된다.
그런데 음원을 재생하는 클래스는 MediaPlayer
클래스이기 때문에 해당 클래스에 리소스 정보를 지정하고 start()
함수를 호출해 음원을 재생하는 차이가 있다.
진동은 퍼미션이 필요하다. <manifest>
태그 안 쪽에 작성하면 된다.
Vibrator
라는 클래스로 진동 알림을 사용하는데, API 레벨에 따라 이 Vibrator
객체를 얻는 방법이 다르다.
VIBRATOR_SERVICE
로 식별되는 시스템 서비스 이용VIBRATOR_MANAGER_SERVICE
로 식별되는 VibratorManager
라는 시스템 서비스를 얻고 이 서비스에서 Vibrator
를 이용else
구문에서 VIBRATOR_SERVICE
에 취소선이 그어져 있는데 그 이유는 deprecated 됐기 때문이다. deprecated 되면 사용 가능이 보장되지 않으니 가급적 피하는 것이 좋다.