Können SharedPreferences zwischen verschiedenen Android-Anwendungen geteilt werden?

8

Als ich die Beschreibung der APIs für getSharedPreferences (String, int) eincheckte, definiert das zweite Attribut den Zugriffsmodus und kann 0 oder MODE_PRIVATE für die Standardoperation MODE_WORLD_READABLE und MODE_WORLD_WRITEABLE zur Steuerung der Berechtigungen verwenden.

Aber es gibt eine kleine Anmerkung in der API-Beschreibung:

  

Hinweis: Derzeit diese Klasse   (android.content.SharedPreferences)   unterstützt nicht die Verwendung über mehrere   Prozesse. Dies wird später hinzugefügt.

Außerdem erwähnte er in Mark L. Murphys Buch "Beginning Android 2":

  

(Eventuell könnten Präferenzen sein   Share über Anwendungen, aber   das wird zur Zeit nicht unterstützt   von diesem Schreiben)

Ich bin so verwirrt! bedeutet das, dass MODE_WORLD_READABLE und MODE_WORLD_WRITEABLE von getSharedPrefrences in der neuesten API-Ebene noch nicht unterstützt werden ???

Danke! Migan

    
Migan 24.01.2011, 22:08
quelle

1 Antwort

7

Meine Buchreferenz basiert auf diesem Kommentar.

Außerdem ist es eine schlechte Idee, irgendeine Datei MODE_WORLD_READABLE oder (schlechter) MODE_WORLD_WRITEABLE zu machen. Sie verlieren jegliche Hoffnung auf Sicherheit.

Wenn Sie Daten zwischen zwei Anwendungen teilen möchten, gibt es eine Vielzahl von Lösungen, wie zum Beispiel:

  • Service mit einer von AIDL bereitgestellten API
  • Service mit einer API, die über Befehle angezeigt wird, die über startService() gesendet werden, und Antworten, die über eine Messenger oder createPendingResult() PendingIntent oder etwas
  • gesendet werden
  • Inhaltsanbieter
  • Sendung Intents

Mit all diesen Optionen können Sie Berechtigungen für die Integration definieren und die Granularität des Zugriffs steuern.

    
CommonsWare 24.01.2011, 22:21
quelle

Tags und Links