getPreference() - доступность общего предпочтения для компонентов приложения

На официальном сайте Android для метода getPreference() сказано, что:

Получите объект SharedPreferences для доступа к предпочтениям, которые являются частными для этого действия.

И здесь ( Как я могу получить SharedPreferences из PreferenceActivity в Android?) Сказано, что:

Эти предпочтения могут использоваться только в рамках конкретного действия и не могут использоваться другими компонентами приложения.

Тем не менее, в URL http://skillgun.com/android/basics/interview-questions-and-answers/paper/25 5-й вопрос,

Говорят, что он не гарантированно защищен, так как будет храниться с именем Activity.

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

1 ответ

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

Заявление о том, что он не защищен, относится к тому факту, что пользователи с правами root (и приложения) могут читать эти файлы из внутренней памяти телефона. Поэтому избегайте любой ценой, сохраняя конфиденциальную информацию пользователя в общих настройках. Ex. Не храните имена пользователей, пароли, личные данные и т. Д.

Используйте общие настройки для простых вещей, которые вы хотите хранить Ex. При разработке приложения контактов вы можете сохранить, нравится ли пользователю читать его контакты firstName LastName или LastName FirstName.

Данные такого рода очень короткие и не ставят под угрозу.

Если вам требуется хранить конфиденциальную информацию, всегда сначала шифруйте данные.

Другие вопросы по тегам