Jak mogę udostępnić plik SharedPreferences w dwóch różnych aplikacjach dla systemu Android?

Od jakiegoś czasu zmagam się z tym. Zasadniczo chcę mieć dwie aplikacje (które zawsze będą razem instalowane) współdzielą preferencje, z których jedna będzie tylko usługą działającą w tle i musi korzystać z preferencji (powinna posiadać preferencje, ale tylkonaprawdę musi je przeczytać), a druga aplikacja to frontowa aplikacja interfejsu użytkownika, która musi mieć możliwość zapisu do pliku preferencji należącego do innej aplikacji. Usługa będzie wykonywać czynności w tle (co może zależeć od preferencji), a interfejs użytkownika umożliwi użytkownikowi edycję preferencji i wyświetlenie niektórych informacji z usługi. Jednak będą to różne pakiety / aplikacje.

Próbowałem podążaćten samouczek co dało mi całkiem dobry pomysł, jak mieć preferencje w jednej aplikacji, które mogą być odczytywane przez inną. Zasadniczo tworzę nowy kontekstmyContext = createPackageContext("com.example.package",Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); a następnie zadzwońmyContext.getSharedPreferences("pref_name", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); Nie mogę jednak z powodzeniem pisać do preferencji z zewnętrznej aplikacji - (SharedPreferences.Editor) .commit () zwraca false i otrzymuję ostrzeżenie w logcat o niemożności edycji pref_name.xml.bak.

Jak mogę pomyślnie skonfigurować moje aplikacje, aby oba mogły odczytywać i zapisywać do tego samego pliku preferencji (który jest przechowywany w folderze danych jednego z nich)?

questionAnswers(2)

yourAnswerToTheQuestion