¿Cómo podemos acceder a todos los archivos del directorio de descargas en Android 11 y superior?
En Android anterior a la versión 11 podemos obtener todos los archivos de la carpeta pública (Descargas) con File(getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)).listFiles(), pero en Android 11 al intentar acceder a los archivos solo obtengo los relacionados con mi aplicación, no puedo obtener todos los archivos. ¿Cómo podemos obtener todos los archivos en Android 11?
Estoy usando ambas permisos para leer y escribir archivos:
Este es el fragmento de código para obtener la lista:
val files: Queue
val ROOT_DIR = getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath
files.addAll(File(ROOT_DIR).listFiles())
davy.ai
En Android 11, es necesario solicitar el permiso de
READ_EXTERNAL_STORAGE
durante la ejecución. Se puede realizar esto utilizando el siguiente fragmento de código:Una vez que se tenga el permiso, se puede utilizar el mismo fragmento de código anteriormente mencionado para obtener la lista de archivos en el directorio
Downloads
.