2012-02-09 114 views
2

我需要以编程方式安装apk。我找到一个方法来意图安装: install/uninstall APKs programmatically (PackageManager vs Intents)Android安装apk with Intent

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

但是,这是行不通的。问题是安装活动并没有出现,取而代之的是,显示选择其他程序的列表:

enter image description here

有人能告诉我是什么问题?谢谢!

更新:

  1. 的许可android.permission.INSTALL_PACKAGES包括在清单。
  2. 我运行的是Android 2.3版SDK 10
+0

什么是 “apkUri” 的价值? – AnujAroshA 2012-02-09 10:17:32

+0

我已更新代码以显示apkUri的详细信息。 – Dagang 2012-02-09 10:30:29

+0

@deepak发布的代码正在工作。你确定你要安装的“apk”文件位于下载目录吗?确保两个应用程序不包含相同的软件包名称。 – AnujAroshA 2012-02-09 10:34:00

回答

4

也许这将解决您的问题:

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

谢谢,但它不起作用。 – Dagang 2012-02-09 10:28:35

+0

你是否正在清单文件中的所有权限 – 2012-02-09 11:03:17

+0

我只包含android.permission.INSTALL_PACKAGES,这是否足够? – Dagang 2012-02-09 13:45:05