看板 AndroidDev 關於我們 聯絡資訊
感謝您的解答喔 ~~ 非常詳盡 !! 讚讚讚 我也是用檢查檔案的方式看看要不要 copy, 不過這樣就沒辦法分辨檔案新舊... 如果外部檔案被程式設計師更新後, 使用者再去裝 apk, 但是 sdcard 存在之前舊的外部檔案 這樣就會造成更新上的問題了~~ 不知道有沒有好的解法... 主要的問題還是不想讓使用者自己手動 copy 外部檔到 sdcard...(應該沒有一個 app 是這樣做) 因為程式本身會讀取絕對路徑, 也就是一個 String path, 所以 InputStream 他是不吃的, 這邊不能改的原因, 是因為那個路徑是透過 jni 傳到底層去的, 不是在 java 上層處理的資料, 所以只能讀取絕對路徑~~ 好怪阿 ~~ 那些 game 到底是怎麼寫的呢 > < 應該都會有資料檔存在 sdcard 的吧~ 還是都不用更新這樣 > < 整包 apk update ? ※ 引述《MiaShopgirl ( )》之銘言: : 恕刪.. : : → MiaShopgirl:onCreate的時候確認SD路徑下沒有要用的檔案的時候, 07/06 13:19 : : → MiaShopgirl:把檔案放在assets裡面,再copy到SD 吧..? 07/06 13:20 : : → MiaShopgirl:or直接存取assets,就不用再複製到SD 07/06 17:27 : : → aquatear:恩, 目前是用拷貝的方式進 sdcard, 不過這樣會有更新的問 07/07 21:46 : : → aquatear:題, 變成每次啟動都會 copy 一次,因為程式只能讀取檔案 07/07 21:47 : 如果要避開「每次啟動都會 copy 一次」, : 可以檢查檔案是否存在再決定要不要複製檔案.. : File file= : new File(Environment.getExternalStorageDirectory(), "yourFileName.here"); : if(!file.exists()){ : /**copy file method**/ : //copying file to externalStorage.. : }else{ : /**file existed, no need to copy file**/ : } : : → aquatear:路徑, assets 似乎沒辦法提供真正的檔案路徑來存取,還是 07/07 21:47 : : → aquatear:有辦法 ? 07/07 21:47 : 把檔案放在assets下存取, : InputStream is = getAssets().open("yourFileName.here"); : 專案目錄結構: : YourProjectName\ : assets\yourFileName.here : bin\ : gen\ : libs\ : res\ : src\ : AndroidManifest.xml -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.61.244
gpc:PM拿一下versionCode跟signature比一下就好了... 07/11 10:17
gpc:另外jni裡面可以做所有JAVA能夠做的事情 包括來到相對路徑 07/11 10:19