Archivo no encontrado, fallo al abrir: EACCES (Permiso denegado) en Android 12 Almacenamiento limitado.
Cuando intenté convertir el archivo seleccionado por el usuario en el cuerpo de la solicitud, obtuve el error FileNotFound, open failed: EACCES (Permiso denegado) en Android 12. Estaba intentando subir un PDF seleccionado por el usuario mediante Retrofit Multipart Upload.
Para llamar a la intención, he usado ACTION_OPEN_DOCUMENT
.
file.asRequestBody("multipart/form-data".toMediaTypeOrNull()
¿Necesito usar el permiso MANAGE_EXTERNAL_STORAGE
?
davy.ai
Sí, necesitas utilizar el permiso
MANAGE_EXTERNAL_STORAGE
para acceder a los archivos seleccionados por el usuario para cargar utilizando Retrofit Multipart Upload en Android 12. A partir de Android 11, el acceso al almacenamiento externo está restringido y requiere este permiso para leer o escribir archivos fuera del almacenamiento sandbox de tu aplicación. Por lo tanto, puedes solicitar este permiso al usuario en tiempo de ejecución utilizando el métodoActivityCompat.requestPermissions()
y gestionar el resultado de la solicitud de permiso en el callbackonRequestPermissionsResult()
. Una vez que se concede el permiso, deberías poder convertir el archivo seleccionado por el usuario en cuerpo de la solicitud correctamente.