2015-12-11 2 views
1

Я разрабатываю одно приложение с пакетом com.example1, и я делаю еще один модуль для использования в качестве библиотеки с пакетом com.example2.SharedPreferences управление между различными пакетами

На моем модуле (com.example2) Я использую это статические функции:

public static void saveLastDownload(Activity mActivity, long numberLong) { 
     SharedPreferences sharedPref = mActivity.getPreferences(Context.MODE_APPEND); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
     editor.putLong(dataLastDownloadKey, numberLong); 
     boolean commit = editor.commit(); 
    } 

    public static long readLastDownload(Activity mActivity, long defaultValue) { 
     SharedPreferences sharedPref = mActivity.getPreferences(Context.MODE_PRIVATE); 
     return sharedPref.getLong(dataLastDownloadKey, defaultValue); 
    } 

Я пытаюсь saveDownload и readLastDownload от com.example1, но я не получил никакого значения на этих общих предпочтений. Как я могу прочитать это значение по-современному (без каких-либо дыр в безопасности, хотя я не заинтересован в его закрытии).

Как я мог это сделать?

спасибо, что заранее.

ответ

2

Если вы хотите сделать это с предпочтениями: MODE_WORLD_READABLE

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

+0

Hello Elenasys. Причина, по которой я спрашиваю, заключается в том, что MODE_WORLD_READABLE устарел от> = API 17, нет другого пути? –

+0

Hola Rafael, я использую BroadcastReceiver для отправки данных и сохранения значений в настройках для каждого приложения. – Jorgesys

+0

Итак, я думаю, это единственный вариант –

Смежные вопросы