es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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 = LinkedList()
val ROOT_DIR = getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath
files.addAll(File(ROOT_DIR).listFiles())

Tags:  , ,

Answer

  1. Avatar for 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:

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), 0)
    }
    

    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.

Comments are closed.