raw 파일(mp3)을 벨소리로 저장하는 기능을 구현하였는데요
SD카드에 저장한 후 디폴트 벨소리로 지정하는 일반적인 방법을 쓰고 있습니다.
벨소리로 지정은 잘 되는데 SD카드 마운트 해제한 후 다시 마운트 할 경우
벨소리 리스트에 같은 이름이 두 개 나타나고 있습니다.
물론 SD카드에 실제 저장된 파일은 하나고요...

소스코드는 다음과 같구요, 혹시 무엇이 문제인지 아시는분 계시면 도움좀 부탁할게요.
감사합니다.



                byte[] buffer = null;
InputStream fIn = getBaseContext().getResources().openRawResource(resId);
String fileExtension = ".mp3";
String fileType = "audio/mp3";
                String path = "/sdcard/media/audio/ringtones/";

                String title = null;
                String filename = "ringtone001";
                title = filename;
filename = filename.concat(fileExtension);

                FileOutputStream save;
try {
int read = 0;
save = new FileOutputStream(path+filename);
size = fIn.available();
buffer = new byte[size];
while((read = fIn.read(buffer)) > 0) {
save.write(buffer, 0, read);
}
save.flush();
fIn.close();
save.close();
} catch (FileNotFoundException e) {
    return false;
} catch (IOException e) {
    return false;
}

                sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path+filename)));

                File k = new File(path, filename);

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, title);
values.put(MediaStore.MediaColumns.DISPLAY_NAME, title);
values.put(MediaStore.MediaColumns.MIME_TYPE, fileType);
values.put(MediaStore.Audio.Media.DISPLAY_NAME, title);
values.put(MediaStore.Audio.Media.TITLE, title);
values.put(MediaStore.Audio.Media.ARTIST, "artist");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
        values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);

                Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + k.getAbsolutePath() + "\"", null);
Uri newUri = getContentResolver().insert(uri, values);

                RingtoneManager.setActualDefaultRingtoneUri(
this,
RingtoneManager.TYPE_RINGTONE,
newUri
         );