如何在Android设备上下载并安装另一个Android应用程序

时间:2013-01-05 04:45:18

标签: android install

有没有办法能够以编程方式从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中编译

如果我做错了,有人可以帮忙告诉我吗

由于 蒙蒂

2 个答案:

答案 0 :(得分:1)

如果没有用户确认,您无法安装应用。

一旦你下载了apk,就应该使用ACTION_INSTALL_PACKAGE代替ACTION_VIEW

来自文档:

  

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

     

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

     

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

答案 1 :(得分:0)

Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(将url传递给downlad app));

    startActivity(browserIntent);

Rest在清单中提供互联网和存储的持久性。