Computer/Android
[Android] Alarm Ringtone 알람 링톤 선택하기
jamezc
2016. 10. 1. 21:13
[Android] 알람 링톤 (Alarm Ringtone) 선택하기
알람의 벨소리(링톤) 을 선택하고 싶을 때 참고하세요.
DialogPicker를 startActivityForResult()로 호출 하고
해당 Dialog 에서 선택된 Ringtone 의 Uri 를 onActivityResult() 콜백 함수에서 받아온다.
onActivityResult() 콜백 함수 내에서 999 호출 되었을때
선택된 Ringtone 의 URI 를 저장하거나 해당 링톤을 재생하거나 원하는 대로 코딩하면 됩니다.
private void showRingtonePickerDialog() { Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone for notifications:"); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION); startActivityForResult(intent, 777); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { switch (requestCode) { case 999: Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI); if (uri != null) { String ringtonePath = uri.toString(); Toast.makeText(getApplicationContext(), "ringtone="+ringtonePath, Toast.LENGTH_LONG).show(); } break; default: break; } } }
# intent 에서 아래의 옵션을 설정 하여 보여주고싶은 Alarm Ringtone 의 목록 설정
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "Select ringtone"); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); // 아래 4가지중 선택 // intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALL); // intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_ALARM); // intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION); intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE);