Установка аудио файла в качестве мелодии звонка не выполняется каждый раз
Я знаю, что этот ответ давался много раз, и это очень простой вопрос, но кое-как, как я не могу этого сделать. Но поверьте мне, я пробовал много других различных решений, но ни одно не помогло мне,
Я пытаюсь установить аудиофайл на мои устройства LeEco Le2, у которых нет карты памяти, я пытаюсь скопировать другой файл из кода на устройство, но каждый раз, когда он ничего не копирует, тот же код, который я пытаюсь использовать на симуляторе (Genymotion) тогда он работает нормально, я не понимаю, в чем проблема и где именно.
Я пытаюсь с таким большим количеством различных кодов безуспешно, я получил так много ссылок с SO и других форумов, но любой код не работает ниже кода ссылки именно то, что мне нужно, и я попробовал это также, но это также не работает установка аудио файла в качестве мелодии звонка,
Ниже мой код.
public boolean saveas(int ressound) {
InputStream fIn = getBaseContext().getResources()
.openRawResource(this.songidlist[this.currenttrack].intValue());
try {
byte[] buffer = new byte[fIn.available()];
fIn.read(buffer);
fIn.close();
String path = Environment.getExternalStorageDirectory() + "/sounds/media/";
String filename = "Ring.mp3";
if (!new File(path).exists()) {
new File(path).mkdirs();
}
try {
FileOutputStream save = new FileOutputStream(new StringBuilder(String.valueOf(path)).append(filename).toString());
save.write(buffer);
save.flush();
save.close();
sendBroadcast(new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE", Uri.parse("file://" + path + filename)));
File k = new File(path, filename);
ContentValues values = new ContentValues();
values.put("_data", k.getAbsolutePath());
values.put(PlusShare.KEY_CONTENT_DEEP_LINK_METADATA_TITLE, "RingTone");
values.put("mime_type", "audio/mp3");
values.put("artist", "Test");
values.put("is_ringtone", Boolean.valueOf(true));
values.put("is_notification", Boolean.valueOf(false));
values.put("is_alarm", Boolean.valueOf(false));
values.put("is_music", Boolean.valueOf(false));
Uri uri = Media.getContentUriForPath(k.getAbsolutePath());
getContentResolver().delete(uri, "_data=\"" + k.getAbsolutePath() + "\"", null);
RingtoneManager.setActualDefaultRingtoneUri(this, 1, getContentResolver().insert(uri, values));
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (IOException e2) {
e2.printStackTrace();
return false;
}
} catch (IOException e3) {
return false;
}
}
получить следующее исключение
09-12 01:36:58.279: W/System.err(2474): java.io.FileNotFoundException: /storage/emulated/0/sounds/media/Ring.mp3: open failed: ENOENT (No such file or directory)
09-12 01:36:58.280: W/System.err(2474): at libcore.io.IoBridge.open(IoBridge.java:452)
09-12 01:36:58.280: W/System.err(2474): at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
09-12 01:36:58.280: W/System.err(2474): at java.io.FileOutputStream.<init>(FileOutputStream.java:127)
09-12 01:36:58.280: W/System.err(2474): at java.io.FileOutputStream.<init>(FileOutputStream.java:116)
09-12 01:36:58.280: W/System.err(2474): at com.appsworld.shivringtone.SplashActivity.saveas(SplashActivity.java:307)
09-12 01:36:58.280: W/System.err(2474): at com.appsworld.shivringtone.SplashActivity$C02832$C02821.onClick(SplashActivity.java:166)
09-12 01:36:58.280: W/System.err(2474): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1108)
09-12 01:36:58.280: W/System.err(2474): at android.widget.AdapterView.performItemClick(AdapterView.java:310)
Пожалуйста, помогите мне решить. Я также дал надлежащее разрешение в файле манифеста. Я скачал какое-то приложение с рынка и попытался запустить на своем устройстве, которое точно работает нормально, но я не знаю, почему в моем случае этот код не работает. Это потому, что у меня нет SDCARD или чего-то еще?