#android #installation #package #instance #overwrite
#Android #настройки
Вопрос:
Как я проверил в описании API для getSharedPreferences(String, int), второй атрибут определяет режим доступности и может принимать 0 или MODE_PRIVATE для операции по умолчанию, MODE_WORLD_READABLE и MODE_WORLD_WRITEABLE для управления разрешениями.
Но в описании API есть это небольшое примечание:
Примечание: в настоящее время этот класс (android.content.SharedPreferences) не поддерживает использование в нескольких процессах. Это будет добавлено позже.
Более того, в книге Марка Л. Мерфи «Начало Android 2» он упомянул:
(В конечном счете, настройки могут быть доступны для всех приложений, но на момент написания этой статьи это не поддерживается)
Я так запутался! означает ли это, что MODE_WORLD_READABLE и MODE_WORLD_WRITEABLE для getSharedPrefrences существуют, но ЕЩЕ НЕ ПОДДЕРЖИВАЮТСЯ на последнем уровне API???
Спасибо! Migan
Ответ №1:
Моя ссылка на книгу основана на этом комментарии.
Более того, создание любого файла MODE_WORLD_READABLE
или (что еще хуже) MODE_WORLD_WRITEABLE
— плохая идея. Вы теряете всякую надежду на безопасность.
Если вы хотите обмениваться данными между двумя приложениями, существует множество решений, таких как:
- сервис с API, предоставляемым AIDL
- сервис с API, предоставляемый через команды, отправленные через
startService()
, и ответы, отправленные черезMessenger
илиcreatePendingResult()
PendingIntent
или что-то еще - поставщик контента
- трансляция
Intents
Все это позволяет вам определять разрешения для интеграции и позволяет контролировать степень детализации доступа.
Комментарии:
1. Спасибо за супер полный ответ! Я был просто сбит с толку, поскольку в J2ME хранилища записей можно легко разделить между различными приложениями, установив режим авторизации на AUTHMODE_ANY, хотя это не имеет безопасности и не рекомендуется. Вот почему я был удивлен, что Prefrences Android еще не поддерживает MODE_WORLD_READABLE и MODE_WORLD_WRITEABLE.