2011-05-04 55 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());