2012-02-09 3 views
2

Мне нужно установить apk программно. Я найти способ установить его с помощью Intent: install/uninstall APKs programmatically (PackageManager vs Intents)Android install apk с 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

Может кто-нибудь сказать мне, в чем проблема? Благодаря!

Update:

  1. Разрешение android.permission.INSTALL_PACKAGES входит в манифесте.
  2. Я бегу Android версии 2.3 SDK 10
+0

Что такое значение "apkUri"? – AnujAroshA

+0

Я обновил код, чтобы показать детали apkUri. – Dagang

+0

Работает код @deepak. Вы уверены, что файл apk, который вы хотите установить, находится в каталоге загрузки? Убедитесь, что оба приложения не содержат одинаковые имена пакетов. – AnujAroshA

ответ

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

+0

Вы принимаете все разрешения в вашем файле манифеста –

+0

Я просто включил android.permission.INSTALL_PACKAGES, достаточно ли этого? – Dagang

Смежные вопросы