0 votos

Permiso de escritura en la tarjeta SD externa para una aplicación antigua

Tengo un teléfono Samsung Galaxy A50 con Android 9 (¡No quiero actualizar! ¡La actualización no es un tema de esta pregunta!) y una aplicación de administrador de archivos antigua de gran valor (no construida por mí) que funciona muy bien, excepto que no puede escribir en la tarjeta SD externa insertada en el teléfono. Una aplicación integrada que venía con el teléfono puede escribir en la tarjeta SD externa.

Por otro lado, el mismo modelo de teléfono con Android 11 permite que esta misma aplicación escriba en la tarjeta SD externa usando el mismo punto de montaje (/storage/IDENTIFICACIÓN-DE-TARJETA-SD-ALFANUMÉRICA).

He leído que la aplicación tiene que solicitar el permiso WRITE_EXTERNAL_STORAGE y esto requiere acceso al código fuente. Como esta aplicación no fue construida por mí, no puedo cambiarla.

  • ¿Significa todo esto que este comportamiento fue corregido en Android 11?
  • ¿Puede que haya algunas configuraciones ocultas para habilitar el acceso de escritura a la tarjeta SD externa?

1voto

pr0nin Puntos 353

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.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X