Wie kann ich eine SharedPreferences-Datei für zwei verschiedene Android-Apps freigeben?

Ich habe eine Weile damit zu kämpfen. Grundsätzlich möchte ich, dass zwei Anwendungen (die immer zusammen installiert werden) Einstellungen gemeinsam nutzen, wobei eine davon nur ein Dienst ist, der im Hintergrund ausgeführt wird und die Einstellungen verwenden muss (die Einstellungen sollten jedoch nur Eigentümer sein)Ja wirklich muss sie lesen) und die andere App muss eine Front-End-UI-App sein, die in der Lage sein muss, in die Einstellungsdatei der anderen App zu schreiben. Der Dienst führt die Vorgänge im Hintergrund aus (was möglicherweise durch die Einstellungen festgelegt wird), und die Benutzeroberfläche ermöglicht es dem Benutzer, die Einstellungen zu bearbeiten und einige Informationen aus dem Dienst anzuzeigen. Es handelt sich jedoch um unterschiedliche Pakete / Apps.

Ich habe versucht zu folgendieses Tutorial Das gab mir eine ziemlich gute Vorstellung davon, wie man in einer App Vorlieben hat, die von einer anderen gelesen werden können. Im Wesentlichen schaffe ich einen neuen Kontext durchmyContext = createPackageContext("com.example.package",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); und dann anrufenmyContext.getSharedPreferences("pref_name", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); Ich kann jedoch nicht erfolgreich von der externen App aus in die Voreinstellungen schreiben. (SharedPreferences.Editor) .commit () gibt false zurück und in logcat wird eine Warnung angezeigt, dass die Datei pref_name.xml.bak nicht bearbeitet werden kann.

Wie kann ich meine Anwendungen erfolgreich einrichten, damit beide in dieselbe Einstellungsdatei (die im Datenordner einer von ihnen gespeichert ist) lesen und schreiben können?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage