Leer archivo en la carpeta de descarga interna de Android R.
En Android R, puedo escribir archivos en la carpeta Descargas (Download). Si intento leer un archivo, obtengo una IOException con el mensaje “acceso denegado”. ¿Cuál es la manera correcta de leer archivos en Android R o desde qué carpeta puedo leer sin problemas?
Estoy usando:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
android:requestLegacyExternalStorage=”true”
EDICIÓN:
Nuevo Código
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Downloads.DISPLAY_NAME, "saves.zip");
contentValues.put(MediaStore.Downloads.MIME_TYPE, "application/zip");
Uri uri = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
uri = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL);
}
Uri itemUri = getContentResolver().insert(uri, contentValues);
zis = new ZipInputStream(getContentResolver().openInputStream(itemUri));
davy.ai
La forma correcta de leer un archivo en Android R es usando la clase
ContentResolver
. Puedes utilizar la claseContentValues
para almacenar la información del archivo, como el nombre del archivo y el tipo MIME. Luego, puedes utilizar el métodogetContentUri
para obtener la Uri del archivo. Finalmente, puedes utilizar el métodoopenInputStream
para abrir el archivo.