2012-02-09 160 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