2011-05-04 78 views
0

Android上的默认共享偏好路径是共享首选项路径在某些电话上不存在?

/data/data/package_name/shared_prefs/package_name_preferences.xml 

在我的应用程序,我有这个文件到SD卡的选项来备份。 但手机三星Galaxy S上,似乎没有路径或文件中像

/data/data/package_name/.. 

用户向我报告说他快备份错误。

如果我检查错误,我可以看到:

/data/data/xxx.xxxx.xxxx/shared_prefs/xxx.xxxx.xxxx_preferences.xml (No such file or directory) 

怎么能这样呢?

这里是我的代码来创建路径:

Environment.getDataDirectory().toString() + "/data/xxx.xxxx.xxxx/shared_pref/xxx.xxxx.xxxxx_preferences.xml" 
+0

问题是http://stackoverflow.com/questions/5531289/copy-the-shared-preferences-xml-file-from-data-on-samsung-device-failed的重复。检查我的答案那里为三星路径。 – 2011-05-04 15:30:38

回答

0

,因为并不是所有的Android安装使用相同的路径,你不应该使用在您的应用程序一样,绝对的文件路径。

尝试使用:SharedPreferences设置= getSharedPreferences(xxx.xxxx.xxxx_preferences.xml,0);

这将访问您的共享偏好使用相对寻址而不是绝对寻址,并应解决您的问题。

+0

谢谢,但我需要一个绝对路径。我将SharedPreferences备份到SD卡上。 getSharedPreferences不能解决我的问题,因为我没有得到路径。 并且sharedPreference路径始终与Android安装路径相同...就我所知! – chrisonline 2011-05-04 15:11:54

0

我只是试图得到像这样的共享偏好的路径。这对我来说是工作。

File f = getDatabasePath("MyPrefsFile.xml"); 

if (f != null) 
    Log.i("TAG", f.getAbsolutePath());