/ / Determine si usar una aplicación de Android interna o externa - java, android

Determina si usar la aplicación de Android interna o externa - java, android

He estado leyendo sobre dónde almacenar mis archivos,y todavía no estoy seguro de qué ruta debo tomar. Estoy escribiendo una aplicación que almacenará imágenes y archivos PDF (con un total de aproximadamente 300 MB). Me gustaría que la aplicación estuviera instalada en el almacenamiento interno y luego permitir que el usuario almacene los archivos PDF y algunas imágenes en la opción de almacenamiento que hay. Es posible permitir que el usuario elija qué almacenamiento utiliza para esos archivos, incluso si tengo esto en mi manifiesto:

android:installLocation="internalOnly"

Esencialmente, me gustaría que el usuario elija esto cuando se inicien las aplicaciones.

Si es así, ¿necesitaría tener una bandera enaplicación que si el usuario eligió externo y si el almacenamiento externo estaba disponible, tenía suficiente espacio, luego guarde los archivos en él. Cada vez que el usuario abría la aplicación, me aseguraba de que los archivos estuvieran disponibles. Si los usuarios eligieran interno, utilizaría openFileOutput. ¿Todo esto parece correcto, es esto posible?

O simplemente debería considerar hacerlo completamente interno solo, porque sin estos PDF e imágenes, la aplicación no es utilizable.

Respuestas

0 para la respuesta № 1

Parece que puede establecer la ubicación de instalación de la siguiente manera para lograr exactamente lo que desea:

android:installLocation="preferExternal"

Desde el documentación:

Si declara "preferExternal", solicite quetu aplicación sea Instalado en el almacenamiento externo, pero el sistema no garantiza que su aplicación se instalará en el almacenamiento externo. Si el almacenamiento externo está lleno, el sistema lo instalará en el Almacenamiento interno. El usuario también puede mover su aplicación entre las dos lugares

Si lo configura en solo interno, el usuario no puede mover la aplicación del almacenamiento interno al externo, por lo que la solución anterior es probablemente su mejor opción.