Можно ли сохранить данные во внутреннем хранилище Android таким образом, чтобы пользователь не мог их удалить? - PullRequest
3 голосов
/ 20 марта 2012

Насколько я понимаю, если я сохраню какие-либо данные во внутреннем хранилище платформы Android, они могут быть легко удалены пользователем, выбрав: Настройки -> Приложения -> Управление приложениями -> (выберите приложение) ->Очистить данные

Есть ли способ сохранить данные (или SharedPreferences) таким образом, чтобы пользователь не мог их удалить?

Ответы [ 2 ]

6 голосов
/ 20 марта 2012

Есть две стороны того, что вы спрашиваете.

Во-первых, есть ли способ хранения данных, которые пользователь не может удалить.

НЕТ, это невозможно, и не должно быть.

Во-вторых, существует ли способ хранения данных вне области, которая стирается при вызове «очистки данных» при управлении приложением.

Да, это возможно. Вам необходимо добавить разрешение для доступа к SD-карте, см. здесь и здесь . Ищите

WRITE_EXTERNAL_STORAGE

Для получения полной информации о доступе к внешнему хранилищу см. здесь

EDIT:

НЕТ способа сохранить данные (SharedPreferences) способом, который не может быть удален Пользователем, и ДОЛЖЕН быть. Это было бы отличным способом для вредоносного приложения совершать вредоносные действия с телефоном (если, во всяком случае, заполнить внутреннее хранилище на телефоне и заставить его выйти из строя, без возможности «очистить данные», чтобы исправить это).

Для сохранения данных, которые не были удалены, используя опцию «Очистить данные» в настройках. Ваши единственные варианты - сохранить во «внешнем хранилище», которое считается как «внутренней SD-картой», так и «внешней SD-картой». В основном, в любом месте, которое НЕ удаляется через Clear Data.

Я верю, что это отвечает на ваш вопрос. Если это не так, то уточните, что вы хотите знать, вместо того, чтобы сказать «это не отвечает на мой вопрос» в комментарии. Скажите мне, что я не отвечаю, и ПОЖАЛУЙСТА, выберите наиболее правильный ответ, если он есть.

0 голосов
/ 20 марта 2012

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

...