Вот что я сделал:
Скопируйте файл активов в SDCard:
AssetManager assetManager = context.getResources().getAssets();
String[] files = null;
try {
files = assetManager.list("ringtone"); //ringtone is folder name
} catch (Exception e) {
Log.e(LOG_TAG, "ERROR: " + e.toString());
}
for (int i = 0; i < files.length; i++) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open("ringtone/" + files[i]);
out = new FileOutputStream(basepath + "/ringtone/" + files[i]);
byte[] buffer = new byte[65536 * 2];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
in.close();
in = null;
out.flush();
out.close();
out = null;
Log.d(LOG_TAG, "Ringtone File Copied in SD Card");
} catch (Exception e) {
Log.e(LOG_TAG, "ERROR: " + e.toString());
}
}
Затем прочитайте файл по пути:
File ringFile = new File(Environment.getExternalStorageDirectory().toString() + "/ringtone", "fileName.mp3");
Там вы идете. У вас есть копия файлового объекта вашего файла активов. Надеюсь это поможет.
Я получаю Out of Memory в своем приложении, если мне это нравится. – Pavandroid
Это работает для меня. Я пропустил какую-то часть. Создайте папку, используя метод mkdirs() объекта файла перед этим кодом. Вы можете это сделать. – drulabs
Вы получаете исключение из памяти для @ vipul и моих решений ... можете ли вы вставлять записи logcat. что-то неправильно. вы тестируете на устройстве или эмуляторе? – drulabs