2012-08-25 46 views
2

我有一個項目,包含四個不同平臺的程序;它們都使用相同的基於XML的設置文件格式。我希望能夠在應用程序之外手動修改/覆蓋它。在Windows,Windows Mobile和Linux上我使用「user.home」,但在Android上,這個別名沒有實現。我正在考慮簡單地把它放在下載目錄中,但是,這並不正確。存儲用戶可訪問配置文件的最佳地點

我不能是唯一一個需要這種功能的人。或者這不是Android方式?任何建議表示讚賞。

編輯:我沒有設置文件一直可用(即SD卡被刪除),它只用於應用程序的啓動。

回答

1

將其存放在getExternalFilesDir()。這隻有在設備具有外部存儲器的情況下才有效。用戶將能夠訪問它。

然而,注意從文檔如下:

外部文件並不總是可用:如果 用戶安裝在計算機上的外部存儲或刪除它,他們就會消失。有關存儲狀態的信息,請參閱環境上的 API。

+0

謝謝,看到了,但我不確定這是什麼意思:'這些文件對於應用程序來說是私有的,而且對於用戶而言通常不可見爲媒體'。我無法測試它,因爲我現在沒有真正的設備。 –

+0

@MyFaJoArCo這句話意味着這些目錄中存在的* media *文件通常不會由像Gallery這樣的應用程序向用戶顯示。我已經在設備上驗證過這些文件可以被用戶訪問。在我的設備上,外部文件目錄是:'/ mnt/sdcard/Android/your.package.name/files /' –

+0

謝謝您的澄清! –

1

根據Android data storage documentation你有5個選項:

  1. 共享偏好。默認情況下,這將使用文件/data/data/your.package.name/preferences/user_preferences.xml
  2. 內部存儲。在這裏,您可以使用類似/data/data/you.package.name/user.home
  3. 外部存儲。類似於內部存儲/mnt/sdcard/Android/data/your.package.name/user.home,但如果用戶刪除存儲卡文件將無法訪問。
  4. SQLiteDatabase。您可以將整個user.home文件存儲在數據庫blob中。
  5. NetworkConnection。將用戶的配置存儲在雲中。
+0

1,2和4 - 用戶無法在非根設備上訪問這些文件夾(對嗎?)。而且,4不是一個選項,因爲這對於配置文件來說是一種矯枉過正,而5是不可接受的,因爲不能保證上網。 3 - 這是一個標準的位置?如果是這樣 - 我能夠從計算機(在連接的設備上)瀏覽它嗎? –

+0

指出:'保存到外部存儲器的文件是世界可讀的,並且可以在用戶啓用USB大容量存儲器在計算機上傳輸文件時進行修改。 –

相關問題