/ / Визначте, чи потрібно використовувати внутрішній чи зовнішній додаток для Android - java, android

Визначте, чи використовувати внутрішню або зовнішню програму для Android - java, android

Я читав, де зберігати свої файли,і я все ще не впевнений, яким маршрутом я повинен пройти. Я пишу програму, в якій зберігатимуться зображення та pdf "s (загальною сумою 300 Мб або більше). Я хотів би, щоб додаток було встановлено на внутрішній сховище, а потім дозволити користувачеві зберігати файли pdfs та деякі зображення у виборі місця зберігання. можна дозволити користувачеві вибирати, яке сховище вони використовуватимуть лише для цих файлів, навіть якщо це я маю в своєму маніфесті:

android:installLocation="internalOnly"

По суті, я хотів би, щоб користувач обрав це під час запуску програм.

Якщо так, то мені просто потрібно мати прапордодаток, що якщо користувач обрав зовнішній і якщо зовнішній сховище був доступний, було достатньо місця, то збережіть у ньому файли. Кожен раз, коли користувач відкривав додаток, я перевіряв би наявність файлів. Якщо користувачі обрали внутрішній, він би використовував openFileOutput. Чи все це здається правильним, чи можливо це?

Або варто просто розглянути можливість зробити його повністю лише внутрішнім, оскільки без цих PDF-файлів і зображень додаток не придатний для використання.

Відповіді:

0 для відповіді № 1

Це здається, що ви можете встановити instaLocation наступним чином, щоб виконати саме те, що ви хочете:

android:installLocation="preferExternal"

Від документація:

Якщо ви оголосите "предпочитаю внешний", ви вимагаєте цьоговаша заява встановлений на зовнішньому сховищі, але система не гарантує що ваша програма буде встановлена ​​на зовнішньому сховищі. Якщо зовнішнє сховище заповнене, система встановить його на внутрішнє зберігання. Користувач також може переміщувати вашу програму між дві локації.

Якщо встановити його на InternalOnly, користувач не може перемістити додаток із внутрішнього сховища до зовнішнього сховища, тому вищевикладене рішення, мабуть, найкращий варіант.