Esto es lo que hice:
copiar su archivo activo en tarjeta SD:
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());
}
}
A continuación, lea el archivo de la ruta:
File ringFile = new File(Environment.getExternalStorageDirectory().toString() + "/ringtone", "fileName.mp3");
Hay que ir. Usted tiene una copia del objeto de archivo de su archivo de activos. Espero que esto ayude.
Me estoy quedando sin memoria en mi aplicación si me gusta esto. – Pavandroid
Esto está funcionando para mí. Omití una parte. Cree la carpeta utilizando el método mkdirs() del objeto de archivo antes de este código. Puedes googlearlo – drulabs
Se está agotando la excepción de memoria para @ vipul y mis soluciones ... puede pegar las entradas de logcat. algo no está bien. estás probando en dispositivo o emulador? – drulabs