¿O es posible recuperar el directorio Preferencias Compartidas guardado de forma predeterminada en?
Sí.
Esta es básicamente la dataDir/shared_prefs que se puede obtener de la ApplicationInfo objeto (que a su vez se puede obtener de la PackageManager). (También, podría ser el mismo que el directorio "getFilesDir" se puede obtener fácilmente de Contexto sí? No estoy seguro, no comprobó que.)
Desde la fuente, a partir de Context.getSharedPreferences (ContextImpl source):
public SharedPreferences getSharedPreferences(String name, int mode) {
SharedPreferencesImpl sp;
File prefsFile;
boolean needInitialLoad = false;
synchronized (sSharedPrefs) {
sp = sSharedPrefs.get(name);
if (sp != null && !sp.hasFileChangedUnexpectedly()) {
return sp;
}
prefsFile = getSharedPrefsFile(name);
...
public File getSharedPrefsFile(String name) {
return makeFilename(getPreferencesDir(), name + ".xml");
}
private File getPreferencesDir() {
synchronized (mSync) {
if (mPreferencesDir == null) {
mPreferencesDir = new File(getDataDirFile(), "shared_prefs");
}
return mPreferencesDir;
}
}
private File getDataDirFile() {
if (mPackageInfo != null) {
return mPackageInfo.getDataDirFile();
}
throw new RuntimeException("Not supported in system context");
}
Y "mPackageInfo" es una instancia de LoadedApk:
public File getDataDirFile() {
return mDataDirFile;
}
mDataDirFile = mDataDir != null ? new File(mDataDir) : null;
mDataDir = aInfo.dataDir;
y T hat nos lleva de vuelta a ApplicationInfo.
Yo diría que si usted no quiere depender de la convención /datos/datos/<PACKAGE_NAME>/shared_prefs entonces debe ser seguro para obtener el "DataDir" y confía en "shared_prefs" a partir de ahí ?
Usted puede intentar esto: 'dir Archivo = getDir ("shared_prefs");' – Dalmas
Este directorio sólo creará '/ datos/datos/package.name/app_shared_prefs/' –