9

резервного копирования Сервис Android requires имя файла для резервного общих предпочтений:Какое имя файла используется по умолчанию для общих настроек?

public static final String PREFS = "PrefFile";  
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS); 

Очевидно, что использовать, если имя файла задается при создании предпочтений, как

public static final String PREF_FILE_NAME = "PrefFile"; 
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

Но я использую по умолчанию общие предпочтения:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 

Что следует передать как PREFS значение SharedPreferencesBackupHelper?

ответ

13
private static String getDefaultSharedPreferencesName(Context context) { 
    return context.getPackageName() + "_preferences"; 
} 

видеть ваше имя пакета в AndroidManifest.xml

+0

Безопасно ли использовать жёстко прописанные значение '_preferences'? Будет ли он работать правильно на всех устройствах Android? –

+0

Не гарантируется. Поэтому я думаю, что лучше использовать SP с определенным именем – Dmitry

+0

Спасибо. Есть ли способ получить имя файла из общих настроек? –

3

От source code, The PackageName на основе контекста, который вы передаете в.

private static String getDefaultSharedPreferencesName(Context context) { 
    return context.getPackageName() + "_preferences"; 
} 
+0

К сожалению, метод 'getDefaultSharedPreferencesName' является закрытым. Есть ли какой-либо общедоступный метод для его получения? –

+0

Не могли бы вы просто добавить этот метод в свой код и использовать его таким образом? – MrEngineer13

+0

Как я уже упоминал в комментарии к другому ответу, я не уверен, что это правильный способ его жесткого кодирования - что произойдет, если Google изменит его в следующей версии Android? –

-1

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences (это);