views:

20

answers:

1

I am implementing the new BackupAgentHelper from android 2.2.

For it to work you need to supply the name of the SharedPreferences that you want to backup:

public class MyPrefsBackupAgent extends BackupAgentHelper {
// The name of the SharedPreferences file
static final String PREFS = "user_preferences";

// A key to uniquely identify the set of backup data
static final String PREFS_BACKUP_KEY = "prefs";

// Allocate a helper and add it to the backup agent
void onCreate() {
    SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, PREFS);
    addHelper(PREFS_BACKUP_KEY, helper);
}
}

Problem is I use the PreferenceManager.getDefaultSharedPreferences() method in my application to get the default shared preferences instance. Now I need to supply the name of that file. How can I find out what name that is?

(And why do they not supply a helper that just does a defaultsharedpreferences backup?)

+1  A: 

It looks like it's called "packagename_preferences"

Peterdk
Yes, if you browse /data/data/<package>/shared_prefs you can see the files used for SharedPreferences. The name you need is indeed <packagename>_preferences. Also, I created an issue to ask for a more convenient way to do this for "default" SharedPreferences: http://code.google.com/p/android/issues/detail?id=11922. (I agree with you, that should be there.)
Charlie Collins