Здравствуйте, я работаю над приложением мелодии звонка, и в моем приложении у меня есть много файлов мелодий звонка в моем приложении. Я загружаю файлы сохранения mp3 во внутреннее хранилище с кодом ниже:
ContextWrapper contextWrapper = new ContextWrapper(context);
File directory = contextWrapper.getDir(context.getFilesDir().getName(), Context.MODE_PRIVATE);
File parent = new File(directory, "RingTones");
final String songPath = "/" + arrayListNames.get(pos).getSoundLink() + ".mp3";
final String loc = parent + songPath;
final File checkFile = new File(parent, songPath);
и когда я хочу чтобы установить mp3-файл в качестве мелодии звонка, будет установлена мелодия звонка, и имя mp3-файла появится в меню «Настройки» / «Уведомления» и «Звук / мелодия звонка», но звук является звуком телефона по умолчанию. здесь установлен код мелодии звонка:
setRingtone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//<editor-fold desc="RingTones">
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, checkFile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, arrayListNames.get(pos).getSoundLink()); //You will have to populate
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "Band Name"); //You will have to populate this
values.put(MediaStore.Audio.Media.DURATION, 230);
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(checkFile.getAbsolutePath());
context.getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + "=\"" + checkFile.getAbsolutePath() + "\"", null);
Uri newUri = context.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(
context,
RingtoneManager.TYPE_RINGTONE,
newUri
);
setRingTonesDialog.dismiss();
//Ringtone set
}
});
Я думаю, что из-за сохранения расположения файла во внутренней памяти, что я должен изменить?