Android从URL安装apk

时间:2012-05-23 07:56:42

标签: android download apk

我的应用程序验证我的应用程序是否有新版本(我的应用程序不在Play商店中)并自动将apk文件下载到sdcard / download。然后我想开始安装,我使用这段代码:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "file.apk")), "application/vnd.android.package-archive");
startActivity(intent); 

但它显示弹出“解析错误:解析包时出现问题”

进入我的AndroidManifest,我已经获得了许可:

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.DELETE_PACKAGES"/>

3 个答案:

答案 0 :(得分:2)

我有类似的错误消息。我的问题的根源是我将apk保存到我的application data目录而不是sdcard。通过保存到/sdcard/myprog.apk,我可以毫无问题地进行安装。

由于我能够通过网络浏览器下载来安装,因此需要确定这些下载的位置,然后以编程方式下载以保存在同一位置。

我发现以下内容对我的更新过程非常有用:Download a file with Android, and showing the progress in a ProgressDialog然后我使用了类似于您必须安装的内容。

答案 1 :(得分:1)

当apk有一个损坏的清单文件时,你是否能够手动安装文件,解析包的错误问题。检查您下载的文件的手动安装是否正常工作。

答案 2 :(得分:0)

您需要在文件路径前添加“file://”。 像这样的东西:

intent.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive");
startActivity(intent);