Есть ли способ создать «постоянный» файл? - PullRequest
0 голосов
/ 02 января 2019

Под «постоянным» я подразумеваю, что он сопротивляется опции удаления приложения, которую предлагает ОС Android.Очевидно, что вы не можете сделать файл не удаляемым в пользовательском терминале, по крайней мере, пользователь всегда сможет удалить его через файловый менеджер, если пожелает.

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

Я мог бы реализовать некоторый тип логики на стороне серверадля предотвращения продолжения работы пользователя, но:

1) Это проще предотвратить, просто проверив файл.

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

Есть ли способ сделать это?

Ответы [ 3 ]

0 голосов
/ 02 января 2019

это можно сделать, настроив авто-резервное копирование , предполагая, что у пользователя это включено.

например, здесь Я объяснил, как отключить это поведение в режиме отладки.

Преимущество заключается в том, что он работает на нескольких устройствах, привязанных к учетной записи.

0 голосов
/ 02 января 2019

Просто получите разрешение на запись в файл и запишите файл в корневой каталог файлов. Как описано здесь: https://developer.android.com/training/data-storage/files#WriteExternalStorage

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

  • Публичные файлы: файлы, которые должны быть свободно доступны для других приложений и для пользователя. Когда пользователь удаляет ваше приложение, эти файлы должны оставаться доступным для пользователя. Например, фотографии, сделанные вашим приложением или другие загруженные файлы должны быть сохранены как публичные файлы.
  • Личные файлы: файлы, которые по праву принадлежат вашему приложению и будут удалены, когда пользователь удалит ваше приложение. Хотя эти файлы технически доступны для пользователя и других приложений, потому что они находятся во внешнем хранилище, они не обеспечивают ценность для пользователя вне вашего приложения.
0 голосов
/ 02 января 2019

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

ACTION_PACKAGE_REMOVED -: Действие широковещания: существующий пакет приложения был удален изустройство.Данные содержат название пакета.Устанавливаемый пакет не получает это намерение.

ACTION_PACKAGE_FULLY_REMOVED -: действие широковещания: существующий пакет приложения был полностью удален с устройства.Данные содержат название пакета.Это похоже на ACTION_PACKAGE_REMOVED, но устанавливается только тогда, когда EXTRA_DATA_REMOVED имеет значение true, а EXTRA_REPLACING имеет значение false для этой трансляции.

...