2

有没有办法以编程方式从 URL 下载和安装另一个 android 应用程序?我试过以下

Intent promptInstall = new Intent(Intent.ACTION_VIEW);

    promptInstall.setDataAndType(Uri.fromFiledwfile), "application/vnd.android.package_archive");
    promptInstall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    startActivity(promptInstall);

但它给了我错误

   java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.example.test/com.example.test.MainActivity}: 

android.content.ActivityNotFoundException: No Activity found to handle Intent { 

act=android.intent.action.VIEW dat=file:///mnt/sdcard/download/Demo.apk 

typ=application/vnd.android.package_archive flg=0x10000000 }

我是否缺少一些权限?我试着给

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

但这并不能让我在 Eclipse 中编译

有人可以帮忙,如果我做错了什么,请告诉我

谢谢蒙蒂

4

2 回答 2

1

没有用户确认,您无法安装应用程序。

下载 apk 后,应使用ACTION_INSTALL_PACKAGE而不是 ACTION_VIEW

从文档中:

活动操作:启动应用程序安装程序。

输入:数据必须是可以检索应用程序的内容:或文件:URI。从 JELLY_BEAN_MR1 开始,您还可以使用“package:”为当前用户安装已为其他用户安装的应用程序。您可以选择提供 EXTRA_INSTALLER_PACKAGE_NAME、EXTRA_NOT_UNKNOWN_SOURCE、EXTRA_ALLOW_REPLACE 和 EXTRA_RETURN_RESULT。

输出:如果是EXTRA_RETURN_RESULT,则返回安装是否成功。

于 2013-01-05T04:50:19.903 回答
0

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(将 url 传递给下载的应用程序));

    startActivity(browserIntent);

Rest在manifest中提供互联网和存储的权限。

于 2013-01-05T12:46:40.773 回答