Gemeinsame Android-Einstellungen für verschiedene Anwendungen

9

Ich habe eine Android-Anwendung entwickelt, die mit anderen auf dem Gerät installierten Anwendungen über eine gemeinsame Vorgabedatei interagiert.

Diese Datei wurde als MODE.WORLD_READABLE erstellt und jede installierte Anwendung hat ihre eigene Datei mit einem gemeinsamen definierten Namen und einer gemeinsamen Eigenschaft (was ändert sich der Wert für diese spezifische Eigenschaft).

Zum Beispiel sollten AppA und AppB jeweils eine gemeinsam genutzte Datei namens "app_shared_file.xml" mit einer Eigenschaft "property_shared_file" haben.

Von meiner Anwendung möchte ich zuerst auf diese Datei zugreifen und diesen Eigenschaftswert lesen, und abhängig von diesem Ergebnis möchte ich meinen erstellen / aktualisieren.

Trotzdem habe ich einige Probleme damit. Auf der Android-Dokumentation sehe ich das:

  

Abrufen und Halten des Inhalts der Voreinstellungsdatei 'name',   Rückgabe einer SharedPreferences, durch die Sie abrufen können und   Ändere seine Werte. Nur eine Instanz des SharedPreferences-Objekts   wird an alle Anrufer mit demselben Namen zurückgegeben , was bedeutet, dass sie sehen werden   die Bearbeitung der anderen, sobald sie gemacht sind.

Nach dem Lesen der anderen freigegebenen Voreinstellungsdatei der Anwendung, wenn ich versuche, mein System zu erstellen / zu aktualisieren, anstatt mein Programm zu bearbeiten, verwende ich das, das ich vorher gelesen habe. Wenn ich im Gegenteil anfange, indem ich meinen aktualisiere und die andere App später lese - anstatt den anderen zu lesen, ist derjenige, auf den zugegriffen wird, mein eigener.

Irgendwelche Gedanken?

Der Code, den ich zum Lesen der gemeinsamen Präferenz verwende, ist [wobei Paketname die andere App ist pckg]:

%Vor%

Der Code, den ich zum Schreiben in die App shared pref verwende, ist:

%Vor%

Vielen Dank im Voraus.

    
user1683087 19.09.2012, 13:01
quelle

2 Antworten

3

SharedPreferences werden lokal im Paketnamen Ihrer Anwendung gespeichert. Von was? klingt wie, Sie haben zwei völlig separate Apps mit unterschiedlichen Paketnamen. Dies bedeutet, dass Sie anstatt zwei Dateien mit demselben Namen erstellen, die in verschiedenen Ordnern gespeichert sind. Damit verschiedene Aktivitäten aus den gleichen SharedPreferences -Dateien lesen können, müssen sie unter demselben Paketnamen wie in der AndroidManifest -Datei definiert sein.

Die andere Option, da Sie den Paketnamen der anderen Anwendungen kennen (nehme ich an), ist die Haupt-App zu wählen, die sie erstellt und behandelt. Dann lesen Sie direkt aus der Datei selbst mit dem direkten URI. Da Sie die Berechtigungen auf MODE_WORLD_READABLE festlegen, sollte das System dies ermöglichen. Es kann jedoch dazu führen, dass Sie nicht mehr auf den Ordner zugreifen können. Ich habe es persönlich noch nie versucht.

Ich glaube, ich habe die Antwort gefunden, nach der Sie suchen. >

    
DeeV 19.09.2012 13:15
quelle
0

Sie können die Einstellungen von anderen Apps mit diesem Snippet lesen.

%Vor%     
Jorgesys 23.05.2013 22:49
quelle

Tags und Links