У меня есть два приложения с именами пакетов:
Они получили sharedUserId "com.blah.shared". В / data / data на моем устройстве они оба получили папку с этими данными, которая содержит папку shared_prefs и файлы SharedPreferences по умолчанию с именем:
- com.blah.a_preferences.xml
- com.blah.b_preferences.xml
Я знаю, что два приложения с одним и тем же sharedUserId могут получать доступ к файлам друг друга. Как я могу прочитать SharedPreferences приложения a из приложения b?
Я нашел одно решение, но оно не работает ни хорошо (если приложение a обновляет предпочтение, приложение b все еще читает старое значение), ни хороший код (может вызвать исключение).
try {
Context c = context.createPackageContext("com.blah.a",
Context.CONTEXT_IGNORE_SECURITY))
aPrefs = PreferenceManager.getDefaultSharedPreferences(c);
} catch (NameNotFoundException e) {
}
Спасибо за вашу помощь!