Si la aplicación soporta acceso de escritura a la sección de almacenamiento interno flash /sdcard
cuando ya tiene el permiso WRITE_EXTERNAL_STORAGE
. Por razones históricas, este permiso tiene el EXTERNAL
en su nombre, aunque se usa principalmente en dispositivos Android antes de la versión 10 para acceder a la memoria flash interna compartida.
Sin embargo, aunque una aplicación tenga el permiso WRITE_EXTERNAL_STORAGE
, no obtiene acceso de escritura automático a la tarjeta SD física. Para obtener acceso de escritura, el usuario tiene que "confirmar" que desea dar acceso a la tarjeta SD externa. Desafortunadamente, este proceso no está bien documentado y es muy poco intuitivo incluso para personas con conocimientos técnicos:
Si una aplicación quiere realizar un comando de escritura en una tarjeta SD física en lugar de los archivos del sistema, aparece la aplicación de archivos abiertos (no estoy seguro si la aplicación tiene que iniciar explícitamente este paso de otorgamiento de permisos o si Android hace esto automáticamente). En esta aplicación de archivos abierta, debes seleccionar la carpeta root de la tarjeta SD física y luego seleccionar el botón "abrir" (¿o "seleccionar"?) en la aplicación de archivos. Si lo haces, la aplicación de archivos se cierra y Android vuelve a la aplicación que quieres usar para escribir en la tarjeta SD. Ahora la aplicación debería tener acceso de escritura a la tarjeta SD si no hay otros obstáculos:
Personalmente tengo un dispositivo Android 9 que he utilizado mucho con una tarjeta SD física, formateada como portátil. Desde mi experiencia, hay un factor que no has considerado: el sistema de archivos utilizado en la tarjeta SD. Las tarjetas SD de más de 64GB generalmente vienen preformateadas con el sistema de archivos exFAT
. Este sistema de archivos se hizo compatible oficialmente con Android a partir de Android 13. Sin embargo, muchos fabricantes implementaron el soporte de exFAT en versiones anteriores. Mi experiencia personal con mi tableta Lenovo Android 9 fue que este soporte implementado por el fabricante a menudo no funcionaba en lo que se refiere al acceso de escritura. En algunas versiones de firmware funcionaba, en otras no.
Otro posible obstáculo son los archivos y carpetas que tienen configurada la bandera de "solo lectura". Con esa bandera configurada (por ejemplo, porque los archivos se extrajeron de un archivo ZIP, TAR o cualquier otro archivo) Android se niega a renombrarlos o eliminarlos. Solo unas pocas aplicaciones pueden restablecer el atributo de solo lectura en Android.