안드로이드 AudioManager로 벨소리모드로 바꾼 후에 Ringtone이 안울리는 문제
조회수 3868회
안녕하세요 해쉬코드 가족여러분
모닝콜 어플을 만들며 배우고있는 학생입니다
사용자가 자기전에 핸드폰을 벨소리/진동/무음 모드 중에 뭘 하고 잠들지 모르자나요?
그래서 다음날 아침에 알람이 울린다는 가정하에(AlarmManager로 액티비티를 호출햇을때)
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
audioManager.setSpeakerphoneOn(true);
audioManager.setRingerMode(audioManager.RINGER_MODE_NORMAL);
이렇게 RINGER_MODE_NORMAL로 바꿔준 후에(벨소리 모드로 바꿔준 후에)
Intent intent = getIntent(); //Uri값 받기
Uri ringtoneUri = intent.getParcelableExtra("리잉톤");
final Ringtone ringtone = RingtoneManager.getRingtone(this, ringtoneUri); //받은 Uri로 링톤 생성
ringtone.play();
이전 액티비티에서 벨소리uri값을 받아와서 ringtone을 플레이 시켯습니다만..
벨소리 모드로 전환까지는 되는데 ringtone 소리가 안 흘러나옵니다.
참고로 애초에 벨소리 모드로 대기하다가 알람이 울렸을 경우엔 ringtone이 잘 흘러나옵니다..
뭐가 문제 일까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
제 테스트 환경(넥서스 롤리팝)에서는 무음 모드에서 다음과 같이 ringtone의 스트림 타입을 알람으로 설정할 경우, 정상적으로 재생이 되는데요. (AudioManager를 통해서 벨소리 모드 전환은 하지 않았습니다.) 다음 샘플 코드로 테스트 해보세요.
Uri uri = RingtoneManager.getActualDefaultRingtoneUri(getContext(), RingtoneManager.TYPE_RINGTONE); Ringtone ringtone = RingtoneManager.getRingtone(getContext(), uri); if (ringtone != null) { ringtone.setStreamType(AudioManager.STREAM_ALARM); ringtone.play(); }
-
(•́ ✖ •̀)
알 수 없는 사용자
- ringtone.setStreamType(AudioManager.STREAM_ALARM); 이 부분이 해결책이었네요!! ringtone의 스트립타입 마저 따로 설정을 해줘야 되는지는 생각을 못했습니다 ㅠㅠ 감사합니다 좋은 하루되세요 알 수 없는 사용자 2016.8.29 16:21
-
댓글 입력