<!-- 安装解包权限 -->
<uses-permission android:name="android.permission.INSTALL_PACKAGES"></uses-permission>
public File write2SDFromInput(String dir ,String fileName,InputStream input){
File file = null;
OutputStream output = null;
try {
createSDDir(dir);
file = createSDFile(dir,fileName);
output = new FileOutputStream(file);
byte[] buffer = new byte[FILESIZE];
int length;
int currentLength = 1;
int times = 0;
while((length = input.read(buffer)) != -1){
output.write(buffer, 0, buffer.length);
currentLength += length;
if( times > 100 || currentSchedule == fileLength){
times = 0;
currentSchedule = currentLength * 100 / fileLength;
mHandler.sendEmptyMessage(4);
}
times ++;
}
output.flush();
}
catch (Exception e) {
e.printStackTrace();
}
finally{
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return file;
}
12-02 14:24:36.856: WARN/PackageParser(5669): Unable to read AndroidManifest.xml of /sdcard/hxp/hxpai.apk
12-02 14:24:36.856: WARN/PackageParser(5669): java.io.FileNotFoundException: AndroidManifest.xml
12-02 14:24:36.856: WARN/PackageParser(5669): at android.content.res.AssetManager.openXmlAssetNative(Native Method)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:469)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:437)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.content.pm.PackageParser.parsePackage(PackageParser.java:370)
12-02 14:24:36.856: WARN/PackageParser(5669): at com.android.packageinstaller.PackageUtil.getPackageInfo(PackageUtil.java:79)
12-02 14:24:36.856: WARN/PackageParser(5669): at com.android.packageinstaller.PackageInstallerActivity.onCreate(PackageInstallerActivity.java:291)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.os.Handler.dispatchMessage(Handler.java:99)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.os.Looper.loop(Looper.java:123)
12-02 14:24:36.856: WARN/PackageParser(5669): at android.app.ActivityThread.main(ActivityThread.java:4363)
12-02 14:24:36.856: WARN/PackageParser(5669): at java.lang.reflect.Method.invokeNative(Native Method)
12-02 14:24:36.856: WARN/PackageParser(5669): at java.lang.reflect.Method.invoke(Method.java:521)
12-02 14:24:36.856: WARN/PackageParser(5669): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
12-02 14:24:36.856: WARN/PackageParser(5669): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
12-02 14:24:36.856: WARN/PackageParser(5669): at dalvik.system.NativeStart.main(Native Method)
12-02 14:24:36.876: WARN/PackageInstaller(5669): Parse error when parsing manifest. Discontinuing installation
下载过程中好像是丢失了AndroidManifest.xml文件,请问我下载的方法是不是有问题,如何修改......谢谢了。
让人更加头大的是我用火狐下载的可以用代码让它安装,
而且我对比了用火狐下载的(1)和用上面代码下载的(2).
2反而比1以下是我获取文件大小的语句:
fileLength = urlConn.getContentLength();
我想不应该有错啊。
求指点......