Android SharedPreferences mit MODE_PRIVATE,MODE_WORLD_READABLE,MODE_WORLD_WRITABLE

Lesezeit: 2 Minuten

Benutzeravatar von user1730789
Benutzer1730789

SharedPreferences in Android sind lokal für eine Anwendung und werden nicht von verschiedenen Anwendungen gemeinsam genutzt. Wenn ich sage

SharedPreferences preferences = getSharedPreferences(PREF_NAME, MODE_WORLD_READABLE);

Was bedeutet es, diese Einstellungen vorzunehmen? MODE_WORLD_READABLE, MODE_WORLD_WRITABLE oder
MODE_PRIVATE?

Benutzeravatar von Adrian C
Adrian C.

getSharedPreferences(String name, int mode) wird erklärt Hier

MODE_PRIVATE: File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID).

MODE_WORLD_READABLE: File creation mode: allow all other applications to have read access to the created file.

MODE_WORLD_WRITEABLE : File creation mode: allow all other applications to have write access to the created file.

Mehr Info Hier

Bearbeiten Ab API 17 ist die MODE_WORLD_READABLE Und MODE_WORLD_WRITEABLE sind veraltet:

Diese Konstante wurde in API-Level 17 veraltet.
Das Erstellen allgemein lesbarer Dateien ist sehr gefährlich und führt wahrscheinlich zu Sicherheitslücken in Anwendungen. Es wird dringend davon abgeraten; Stattdessen sollten Anwendungen formellere Mechanismen für Interaktionen verwenden, z ContentProvider, BroadcastReceiverUnd Service. Es gibt keine Garantie dafür, dass dieser Zugriffsmodus für eine Datei erhalten bleibt, beispielsweise wenn sie eine Sicherung und Wiederherstellung durchläuft.

Benutzeravatar von Anup Cowkurs
Anup Cowkur

Einstellungen werden im Dateisystem gespeichert. Der Modus definiert, wer Zugriff auf die Einstellungen Ihrer App hat.

In einfachen Worten:

  • MODE_PRIVATE ist der Betriebsmodus für die Voreinstellungen. Dies ist der Standardmodus und bedeutet, dass nur die aufrufende Anwendung auf die erstellte Datei zugreift.
  • In MODE_WORLD_READABLE Andere Anwendungen können die erstellte Datei lesen, sie jedoch nicht ändern.
  • Im Falle von MODE_WORLD_WRITEABLE Andere Anwendungen verfügen ebenfalls über Schreibrechte für die erstellte Datei.

Die empfohlene Methode ist die Verwendung des Standardmodus ohne Angabe des Dateinamens

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

Benutzeravatar von Praful Bhatnagar
Praful Bhatnagar

Gemeinsame Präferenzen werden auch in einer Datei im Dateisystem gespeichert. Und diese Modi legen fest, ob andere Anwendungen das Recht haben, die Shard-Präferenz in der Datei zu lesen oder nicht.

MODE_PRIVATE bedeutet, dass nur die Anwendung, die die gemeinsame Präferenz erstellt, die Präferenz lesen und schreiben kann

MODE_WORLD_READABLE bedeutet, dass andere Anwendungen diese Einstellungen ebenfalls mithilfe der API für gemeinsame Einstellungen lesen können, jedoch keinen Wert in diese Einstellungsdatei schreiben können

MODE_WORLD_WRITEABLE bedeutet, dass auch andere Anwendungen mithilfe der Shared Preference API die Einstellungsdatei lesen und schreiben können

Der folgende Link enthält auch einige gute Erklärungen und Codebeispiele zur Erläuterung der MODI:

http://thedevelopersinfo.com/2009/11/25/getting-sharedpreferences-from-other-application-in-android/

http://chrisrisner.com/Accessing-the-Shared-Preferences-of-a-Different-Application-in-Android

MODE_PRIVATE bezeichnet die von Ihrer App erstellte Datei zum Speichern von App-Präferenzdaten, auf die nur Ihre eigene App zugreifen kann.

Keine andere App könnte auf diese Datei zugreifen.

1451390cookie-checkAndroid SharedPreferences mit MODE_PRIVATE,MODE_WORLD_READABLE,MODE_WORLD_WRITABLE

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy