Android: удалять связанные приложения файлы из внешнего хранилища в Uninstall?

Было бы удобно, если приложение, которое я пишу, постоянно хранит некоторые файлы на внешнем хранилище (поэтому они сохраняются после выхода приложения [уничтожено]), но при удалении я хотел бы сделать приличную вещь и иметь эти Удаленные файлы, чтобы освободить хранилище.

Есть ли способ удалить эти файлы при удалении?

Если нет (и я скептически настроен), тогда мне придется создавать эти файлы каждый раз. Я пытаюсь сохранить время запуска, а также занимать необходимое пространство, поскольку они существуют на постоянной основе.

Примечание. Мне нужно использовать внешнее хранилище, поэтому внутреннее хранилище или БД было бы неуместным.

Solutions Collecting From Web of "Android: удалять связанные приложения файлы из внешнего хранилища в Uninstall?"

Нет, я не верю. Только файлы, которые вы записываете во внутреннюю память, будут удалены, когда ваше приложение будет удалено (или если пользователь нажимает кнопку «очистить данные» в приложении «Настройки приложения»).

Ваше приложение также не может получать свои собственные PACKAGE_REMOVED трансляции PACKAGE_REMOVED , поэтому у вас практически нет уведомления о том, что вы удаляете.

На самом деле это возможно.

Android автоматически удалит файлы приложения во внешнем хранилище, но файлы должны находиться внутри определенного пути приложения:

"….. / Android / данные / APP_PACKAGE_NAME /"

Где APP_PACKAGE_NAME – это имя пакета приложения. Другой путь, который автоматически опорожняется:

«….. / Android / obb / APP_PACKAGE_NAME /», где APP_PACKAGE_NAME – это имя пакета приложения.

Данные для всего, что вы пожелаете. Папка obb предназначена для огромных файлов, загружаемых с использованием магазина воспроизведения и библиотеки расширения apk . Вы не должны создавать там файлы.

Да, это возможно. Просто напишите файлы в каталоге внешних файлов:

 File dir = getExternalFilesDir(null); 

Это создаст папку в /Android/data/your.package/. Обратите внимание, что это не внешнее, как в sdcard , но оно общедоступно. Если пользователь удалит ваше приложение, этот каталог также будет удален вместе со всем содержимым.

Цитата из сообщения блога CommonsWare

  • Внутреннее хранилище: ваш файл удален

  • Внешнее хранилище: если вы написали свой файл в местоположении, основанном на getExternalFilesDir() или getExternalCacheDir() , ваш файл будет удален. Если вы написали файл в другом месте (например, Environment.getExternalStoragePublicDirectory() ), ваш файл не удаляется

  • Съемное хранилище до Android 4.4: съемное хранилище официально не доступно; Если ваш файл завершается, его не следует удалять, когда ваше приложение удаляется

  • Съемное хранилище, Android 4.4+: AFAIK, если вы пишете в поддерживаемое местоположение ( getExternalFilesDirs() или getExternalCacheDirs() ), ваш файл будет удален, если этот конкретный бит съемного хранилища находится на устройстве во время удаления