作者MiaShopgirl ( )
看板AndroidDev
標題Re: [問題] 請問外部檔案安裝
時間Thu Jul 12 15:41:53 2012
※ 引述《aquatear (米蟲)》之銘言:
恕刪
: 不過這樣就沒辦法分辨檔案新舊...
: 如果外部檔案被程式設計師更新後, 使用者再去裝 apk,
: 但是 sdcard 存在之前舊的外部檔案
: 這樣就會造成更新上的問題了~~
: 不知道有沒有好的解法...
java.io.File.
lastModified()
http://developer.android.com/reference/java/io/File.html#lastModified()
Returns the
time when this file was last modified, measured in milliseconds
since January 1st, 1970, midnight. Returns 0 if the file does not exist.
: 主要的問題還是不想讓使用者自己手動
: copy 外部檔到 sdcard...(應該沒有一個 app 是這樣做)
: 因為程式本身會讀取絕對路徑, 也就是一個 String path,
: 所以 InputStream 他是不吃的, 這邊不能改的原因,
: 是因為那個路徑是透過 jni 傳到底層去的, 不是在 java 上層處理的資料,
: 所以只能讀取絕對路徑~~
: 好怪阿 ~~ 那些 game 到底是怎麼寫的呢 > <
: 應該都會有資料檔存在 sdcard 的吧~ 還是都不用更新這樣 > <
: 整包 apk update ?
對jni不熟,Android存取資料的地方..
除了SD path, 還有
data/data/your.package.name/cache getCacheDir().getAbsolutePath()
/files getFilesDir().getAbsolutePath()
既然路徑是固定的,又擔心檔案本身是否被更動過,這招參考看看
public abstract FileOutputStream openFileOutput (String name, int mode)
http://goo.gl/MKpBs
Open a private file associated with this Context's application package for
writing. Creates the file if it doesn't already exist.
可以設定讀寫的權限 MODE_XXX
※ 編輯: MiaShopgirl 來自: 114.32.163.6 (07/12 15:49)
推 gpc:mode有API LEVEL的問題 不適合做common app 07/12 17:43
喔喔,因為我自己的目標都是設定以market上大多數的使用者會用到的版本
今天正要來測這功能,熊熊看到.. Since: API Level 1
這樣還有level的問題嘛@@?
http://developer.android.com/about/dashboards/index.html
目前看起來,2.1↑居多,不過通常都指定2.2 Level 8 就是~
→ tacor:利用SharedPreferences,判斷copy前後的變數,就不會重覆copy 07/14 06:29
※ 編輯: MiaShopgirl 來自: 114.32.163.6 (07/17 15:23)