¿Hay alguna razón técnica por la que las aplicaciones que solo necesitan sus propios datos no estén limitadas a una carpeta? Me doy cuenta de que algunas aplicaciones usan los datos de otras aplicaciones, pero es mucho más probable que instale una aplicación que solo solicite permiso para almacenar archivos en una carpeta específica.
Existen diferentes mecanismos para almacenar datos en una aplicación de Android que no necesitan el permiso de acceso de la tarjeta SD. Puede crear bases de datos, almacenar parámetros de aplicaciones, crear archivos en el almacenamiento interno. Todo esto no requerirá ningún permiso específico y solo la aplicación que los creó puede acceder a estos datos.
Por otro lado, si una aplicación necesita el permiso de la tarjeta SD, puede ser porque tiene una gran cantidad de datos para almacenar o porque quiere modificar/agregar/eliminar archivos, como en un administrador de archivos. Pero para datos importantes específicos de la aplicación, no se recomienda la tarjeta SD porque podría retirarse en cualquier momento (o montarse como una unidad USB) y no estar disponible para las aplicaciones.
Creo que muchas aplicaciones que solicitan permiso de acceso SD podrían usar otro tipo de almacenamiento de datos que no lo requiera. Además, los archivos creados en la SD por una aplicación no se eliminarán al desinstalar la aplicación, pero sí lo harán todos los demás tipos de almacenamiento de datos internos. Entonces, para mí, sería una mejor práctica de desarrollo no usar la SD si no es necesaria, y como mencionaste, no asustaría a las personas como las aplicaciones que acceden a la SD completa.
Las tarjetas SD generalmente usan el sistema de archivos FAT, que no permite permisos del sistema de archivos. Esto significa que el sistema operativo Android tendría que administrar una lista personalizada de archivos, sus permisos, una asignación de aplicaciones a archivos/carpetas, etc. para evitar que las aplicaciones accedan a toda la tarjeta. Esto sería un lío terrible. No solo complicado, sino que requeriría mucho espacio de almacenamiento. Y luego, un día, saca su tarjeta SD y elimina algunas imágenes, y todo el sistema se rompe. Entiendes la idea.
Como explicó Matthew Read, con una tarjeta SD normal que usa el sistema de archivos FAT, no es posible usar los permisos de archivo para controlar el acceso de las aplicaciones, de la misma manera que Android controla su acceso a los archivos en el sistema de archivos interno. Pero ahora que los teléfonos Android usan almacenamiento interno en lugar de tarjetas SD, y usan MTP para ofrecer acceso a través de USB en lugar de la clase de dispositivo de almacenamiento masivo, los teléfonos Android pueden usar mejores sistemas de archivos para su gran almacenamiento de datos.
KitKat agregó un nuevo mecanismo para que las aplicaciones almacenen archivos grandes. En el almacenamiento USB interno, cada aplicación obtiene un directorio de datos privados, al igual que en la memoria del dispositivo más pequeño. (En algunos dispositivos, estos pueden ser incluso el mismo sistema de archivos). Las aplicaciones pueden acceder a su directorio privado en este sistema de archivos sin necesidad de permisos especiales. Ahora también es posible que las aplicaciones solo soliciten el permiso "leer tarjeta SD" y "escribir tarjeta SD" en versiones de Android anteriores a KitKat, si solo necesitan la tarjeta SD para usar un directorio privado como este.
Los viejos directorios compartidos como "Descargas", "Música" y "Notificaciones" todavía están presentes como antes y aún necesitan los mismos permisos para acceder. Las aplicaciones antiguas que no se han actualizado para KitKat seguirán usando esos directorios, no los nuevos directorios privados.
usuario2774
mateo leer
mateo leer