Можно ли использовать SharedPreferences для разных приложений Android? - PullRequest
8 голосов
/ 25 января 2011

Как я проверял в описании 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 getSharedPrefferences есть, но НЕ ПОДДЕРЖИВАЮТСЯ В ПОДАРОК ​​на последнем уровне API ???

Спасибо!Migan

1 Ответ

7 голосов
/ 25 января 2011

Ссылка на мою книгу основана на этом комментарии.

Более того, создание любого файла MODE_WORLD_READABLE или (хуже) MODE_WORLD_WRITEABLE - плохая идея. Вы теряете надежду на безопасность.

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

  • сервис с API, предоставляемым AIDL
  • сервис с API, предоставляемым через команды, отправленные через startService() и ответы, отправленные через Messenger или createPendingResult() PendingIntent или что-то еще
  • контент-провайдер
  • трансляция Intents

Все это позволяет вам определять разрешения для интеграции и контролировать гранулярность доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...