Что такое замена устаревших MODE_WORLD_READABLE SharedPreferences в Android?

Я разрабатываю Android-приложение A, чтобы другой B мог читать A SharedPreferences.

В javadoc для android.content.Context говорится обо всех MODE_WORLD_READABLE и MODE_WORLD_WRITEABLE:

Эта константа была устаревшей в API-интерфейсе 17. Создание записи в мире файлы очень опасны и могут вызвать Приложения. Это сильно обескураживает; вместо этого приложения должны используйте более формальный механизм взаимодействия, например ContentProvider, BroadcastReceiver и Service.

В соответствии с этим A должен сохранить свой SharedPreferences с флагом MODE_PRIVATE и предоставить ContentProvider, чтобы B мог запросить A ContentProvider. Но откуда я узнал SharedPreferences Uri?

Я думаю, что это похоже на content://authority_name/preference_file_name, но это не работает для меня. Я был бы признателен за любые правильные примеры.

И вообще, можно ли получить доступ к другому приложению MODE_PRIVATE SharedPreferences?

Ответ 1

Если ваши данные не являются конфиденциальными, используйте хранилище sdcard.

Доступ к другому приложению MODE_PRIVATE Sahredpreferences: у них такой же uid. то есть та же подпись и "sharedUserId" в AndroidManifest.xml.