Android 4.4: ¿es válido el permiso WRITE_EXTERNAL_STORAGE en el almacenamiento externo primario / mnt / sdcard?
Android 4.4 nuevas reglas para acceder al almacenamiento externo parecen romper muchas aplicaciones.
De acuerdo con esto: http://source.android.com/devices/tech/storage/ (lea atentamente) parece que el permiso WRITE_EXTERNAL_STORAGE no concede más acceso a almacenamiento extraíble secundario con la ruta / mnt / external_sd en Android 4.4. Dicen que las aplicaciones sólo pueden acceder a una carpeta privada en el almacenamiento secundario extraíble, y se quita cuando se quita la aplicación.
- Poner permisos a manifiesto del proyecto de la biblioteca .aar de Android
- Actividad Propósito Permiso Android M SDK 23
- La forma menos invasiva de identificar de forma exclusiva al usuario de Android
- Reconocimiento de voz de Android Permiso insuficiente (Código de error 9)
- Permiso de herramientas de desarrollo que no establecí
Ahora, creo que, según lo implícito, WRITE_EXTERNAL_STORAGE concederá acceso en el almacenamiento externo primario / mnt / sdcard.
Si es cierto, es posible, por ejemplo, que mi aplicación inicie otra aplicación y la alimente con un archivo: // url dentro del almacenamiento externo principal y luego la aplicación llamada puede editar y guardar el archivo en la misma ruta, siempre Tiene el permiso WRITE_EXTERNAL_STORAGE.
¿Funciona Android 4.4 de esta manera en cuanto al acceso de almacenamiento externo primario?
- Caché de archivos y permiso de archivo
- El permiso de vibración sólo se requiere en algunos dispositivos
- Obtener los permisos del sistema de Android al poner la aplicación en / system / app?
- ACCESS_COARSE_LOCATION se fusionó con play-services-base lib
- ¿Cuál es el uso de <permission-group> en android?
- Aplicación que solicita permiso no declarado - "Probar acceso a almacenamiento protegido"
- Todos los permisos de mi aplicación se revocan después de presionar "Restablecer las preferencias de la aplicación"
- Cómo activar mediante programación el inicio automático en los dispositivos Lenovo y ¿Cómo encontrar qué teléfono necesita hacer el código de inicio automático?
Tienes razón, pero para ver por qué vamos a echar un vistazo a los detalles de los diferentes tipos de almacenamiento externo y su sistema de permisos.
Almacenamiento externo primario
En el modelo de almacenamiento externo de KitKat, cada aplicación tiene acceso a un directorio personal especial en el almacenamiento externo primario. Las aplicaciones siempre pueden leer y escribir el contenido de esos directorios externos sin necesidad de un permiso especial. Sin embargo, en contraste con los directorios internos de la aplicación, los externos también pueden ser accedidos por otras aplicaciones en determinadas circunstancias. READ_EXTERNAL_STORAGE proporciona a las aplicaciones acceso de lectura completo a la memoria externa primaria, incluso para todas las direcciones domésticas. Sin embargo, WRITE_EXTERNAL_STORAGE otorga permiso de escritura y lectura para el almacenamiento externo primario. Ahora vamos a aks, ¿por qué tener una dirección de inicio si alguien que tiene los permisos anteriores puede manipularlos? La razón es que esos nuevos dirs caseros externos no se significan como frontera de la seguridad. Lo que los hace especiales es que Android los eliminará automáticamente tan pronto como se desinstale la aplicación propietaria, por lo que hemos automatizado la limpieza aquí. Esto también significa que no debe almacenar los datos privados de la aplicación como credenciales o cosas explotables como archivos de configuración en la memoria externa en absoluto. También es bueno que el escáner de los medios de comunicación ignora los dirs caseros. También tenga en cuenta que esta parte de la memoria se puede montar en un equipo donde Android efectivamente pierde el control sobre los datos.
Almacenamiento externo secundario
Aquí, el concepto de los dirs externos del hogar aparece de nuevo donde las aplicaciones pueden almacenar sus datos sin requerir un permiso. Una vez más, los dirs especiales se eliminan automáticamente tras la desinstalación de la aplicación propietaria y no proporcionan ninguna seguridad porque la tarjeta sd se puede montar y modificar arbitrariamente en un equipo, por ejemplo. Pero, en contraste con el almacenamiento externo primario, todos los datos fuera de los directorios locales se leen sólo aquí. Por lo tanto, realmente no hay permiso para el acceso de escritura, porque esto no está destinado en absoluto.
Su ejemplo Con su ejemplo, tiene toda la razón en que la aplicación iniciada a la que se le dio un archivo URI puede modificarlo arbitrariamente, dado que tiene el permiso correcto.
Si está interesado en más detalles, los mensajes aquí y aquí proporcionan una excelente visión del nuevo modelo de almacenamiento.
- He creado una clave de API de mapa de Android para V2, no puedo mostrar un mapa
- SQLite Random () En ORDER BY no se está clasificando correctamente