raw에 있는 파일을 벨소리로 지정하고 싶습니다.
일단 기본적인 소스를 가지고 있고요.
무엇이 틀렸는지 봐주셨으면 합니다..
String filepath = "android.resource://"+getPackageName()+"/raw/mi";
File file = new File(filepath);
Log.e("MainActivity", file.getAbsolutePath());
try {
ContentValues values = new ContentValues();
// values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
values.put(MediaStore.MediaColumns.DATA, "android.resource://"+getPackageName()+"/raw/mi");
values.put(MediaStore.MediaColumns.TITLE, "longlong4");
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
values.put(MediaStore.Audio.Media.DURATION, 230);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, true);
// Uri uri = MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());
Uri uri = MediaStore.Audio.Media.getContentUriForPath("android.resource://"+getPackageName()+"/raw/mi");
// getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + file.getAbsolutePath() + "\"", null);
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + "android.resource://"+getPackageName()+"/raw/mi" + "\"", null);
Uri newUri = getApplicationContext().getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_NOTIFICATION, newUri);
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_ALARM, newUri);
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_ALL, newUri);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "벨소리 설정에 실패했습니다.", Toast.LENGTH_SHORT).show();
return ;
}
Toast.makeText(getApplicationContext(), "벨소리 설정이 완료되었습니다.", Toast.LENGTH_SHORT).show();
잘부탁드립니다.