반응형
안드로이드 전화 벨소리 지정하는 코드방식이다.
전화 벨소리 또한 ContentValues 를 이용하여 내부디비에 저장 하는 방법이다.
public void Ringtone(Context ctx, File file){ if (file == null) return; ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath()); //파일 위치 values.put(MediaStore.MediaColumns.TITLE, file.getName()); //파일명 values.put(MediaStore.MediaColumns.SIZE, file.length()); //파일 사이즈 values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); //파일 형태 values.put(MediaStore.Audio.Media.ARTIST, "호우"); values.put(MediaStore.Audio.Media.DURATION, 300); values.put(MediaStore.Audio.Media.IS_RINGTONE, true); //벨소리인지 values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); //노티알림으로 선택할수 있도록 할건지 values.put(MediaStore.Audio.Media.IS_ALARM, false); //앨범인지 values.put(MediaStore.Audio.Media.IS_MUSIC, true); //음악인지 이것을 하면 안드로이드 기본 음원에도 나타난다. //밑에서 처럼 지웠다가 다시 넣어주는 이유는 똑같은 파일을 넣을시 정상적으로 작동하지 않는 경우가 있었음 //참고로 이 벨소리 지정은 mp3파일을 다운받아서 바로 벨소리로 지정하는 로직에서 쓰였던것이다. Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath()); try{ ctx.getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + dataFile.getAbsolutePath() + "\"", null); }catch (Exception e){ e.printStackTrace(); } Uri uri2 = ctx.getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri( ctx, RingtoneManager.TYPE_RINGTONE, uri2 ); }
반응형
'프로그램 > Android' 카테고리의 다른 글
APK에서 개인정보처리 방침이 필요한 권한을 사용합니다. (0) | 2017.08.28 |
---|---|
Webview File Open (0) | 2017.08.28 |
전화번호부에서 전화번호 긁어오기 (0) | 2017.08.28 |
안드로이드 Notification 이미지와 큰사이즈 (0) | 2017.08.28 |
안드로이드 mp3플레어어 만들기(3.mp3 service 생성) (0) | 2017.08.28 |