[英]Android - Download and save APK files in Phone Storage (Not in SD card)
我試圖從服務器下載一個APK文件並將其保存在“手機存儲”中 。
以下是我使用的代碼:
String apkLink = "http://10.1.20.53/files/test.apk";
URL url = new URL(apkLink);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
context.getDir("test.apk", Context.MODE_WORLD_WRITEABLE);
FileOutputStream fos = context.openFileOutput("app_test.apk", Context.MODE_WORLD_WRITEABLE);
InputStream is = c.getInputStream();
fileSize = c.getContentLength();
byte[] buffer1 = new byte[1024];
int len1 = 0;
int total = 0;
while ((len1 = is.read(buffer1)) != -1) {
total += len1;
percentage = (int)(total*100/fileSize);
publishProgress();
fos.write(buffer1, 0, len1);
}
fos.close();
is.close();
相同的代碼可以很好地處理XML文件。 (當我將XML文件下載到手機內存時)。
有人可以幫我弄這個嗎?
謝謝
其實我知道原因了
context.getDir(“ test.apk”,Context.MODE_WORLD_WRITEABLE); 代碼行創建一個名為“ data / data / package_name / app_test.apk”的目錄
但是FileOutputStream fos = context.openFileOutput(“ app_test.apk”); 創建一個名為data / data / package_name / files / app_test.apk的目錄
我試圖從data / data / package_name / app_test.apk目錄中讀取文件。
無論如何,現在我將使用以下代碼執行該文件,
File f = new File(getFilesDir()+ "/app_test.apk");
intent.setDataAndType(Uri.fromFile(f) , "application/vnd.android.package-archive");
startActivity(intent);
但這給了我一個解析錯誤信息。
誰能想到一種解決方案?
謝謝。
我已經在這里回答了類似的問題。 考慮到您的問題,我有幾種不同的意見,為什么它不起作用。
創建文件時,請嘗試使用Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.