問題是這樣的:轉換的HttpResponse到.apk文件
我使通過互聯網連接到某些URL和接受一個HttpResponse與app_example.apk。
然後我想用這個數據在SD卡中創建一個文件(.apk) ,這樣下載的應用程序 可以稍後安裝。
如何將HttpResponse轉換爲.apk文件?
讓我們澄清了一些細節:
- 我通過互聯網連接到我的服務器得到這個apk文件
- 我不想安裝這個應用我收到一份關於SD卡
- 所有這是必須在我的代碼,我不能使用安卓市場
我目前正在寫入該文件。
我在做什麼是HttpResponse對象轉換爲一個byte [],
那麼的byte []寫入使用ObjectOutputStream文件(.apk文件)。
像這樣:
// byte[] appByteArray - already has the internet response converted in bytes
try {
file = new File(Environment.getExternalStorageDirectory()+"/"+appName+".apk");
file.createNewFile();
FileOutputStream stream = null;
stream = new FileOutputStream(file, false);
ObjectOutputStream objectOut =
new ObjectOutputStream(new BufferedOutputStream(stream));
objectOut.writeObject(appByteArray);
objectOut.close();
} catch (Exception e) {
e.printStackTrace();
}
最後,該文件被創建 並具有接收到的內容。
當我嘗試安裝它, 通過VIEW intent(使用默認安裝程序) 我得到一個解析錯誤,說它找不到AndroidManifest.xml。
我認爲,在一段路上,接收到的數據被破壞。
你有解決這個問題的另一種方法嗎?
非常感謝
您可以請您發佈實際的日誌輸出,你從調用'VIEW'意圖的點? – 2010-01-05 03:18:10
apk文件只是一個具有不同擴展名的zip文件,因此您可以將文件從SD卡中取出並嘗試解壓縮,並查看它是否包含您期望的所有內容。 – CaseyB 2010-01-04 20:44:47