Методы которые предлагает Context открывают sharedPreferences только из папки пакета приложения, а что, если мне нужно открыть такой файл из внешнего хранилища? Как получить к нему доступ чтобы читать его как sharedPreferences
Можно использовать SharedPreferences с флагом Context.MODE_WORLD_READABLE.
В первом приложении записываем значения:
SharedPreferences sharedPreferences = getSharedPreferences("some_prefs", Context.MODE_WORLD_READABLE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("SOME_VALUE_KEY", "some_value");
editor.commit();
Во втором читаем их:
Context context = createPackageContext("%FIRST_APP_PACKAGE%", 0);
SharedPreferences sharedPreferences = context.getSharedPreferences("some_prefs", Context.MODE_PRIVATE);
String value = sharedPreferences.getString("SOME_VALUE_KEY", "Empty value");
Однако, флаги Context.MODE_WORLD_READABLE и Context.MODE_WORLD_WRITEABLE в API level 17 помечены как deprecated с указанием, что это плохо с точки зрения безопасности.
Продвижение своими сайтами как стратегия роста и независимости