默认共享首选项使用的文件名是什么?

LA_*_*LA_ 14 android android-preferences sharedpreferences android-backup-service

Android备份服务需要一个文件名来备份共享首选项:

public static final String PREFS = "PrefFile";    
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
Run Code Online (Sandbox Code Playgroud)

如果在创建首选项期间给出了文件名,那么很清楚要使用什么

public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
Run Code Online (Sandbox Code Playgroud)

但我使用默认的共享首选项:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
Run Code Online (Sandbox Code Playgroud)

我应该将什么作为PREFS价值传递给SharedPreferencesBackupHelper

小智 20

private static String getDefaultSharedPreferencesName(Context context) {
    return context.getPackageName() + "_preferences";
}
Run Code Online (Sandbox Code Playgroud)

在AndroidManifest.xml中查看您的包名称

  • 现在,这在 API 24 中作为“PreferenceManager”上的公共方法公开:https://developer.android.com/reference/android/preference/PreferenceManager.html#getDefaultSharedPreferencesName(android.content.Context) (2认同)

MrE*_*r13 5

源代码中,PackageName 基于您传入的上下文。

private static String getDefaultSharedPreferencesName(Context context) {
    return context.getPackageName() + "_preferences";
}
Run Code Online (Sandbox Code Playgroud)