как программно установить apk файл на Galaxy Tab - PullRequest
2 голосов
/ 09 февраля 2012

Я пытаюсь установить apk программно по этому коду:

Intent intent = new Intent(Intent.ACTION_VIEW);
String mimetype = "application/vnd.android.package-archive";
intent.setDataAndType(Uri.fromFile(file), mimetype);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent); 

И работает нормально для всех устройств, кроме Samsung Galaxy Tab GT-P1000.

В Galaxy Tab менеджер пакетов начинает установку, но никогда не прекращает ее. Есть индикатор выполнения бесконечного показа. После закрытия pakage manager клавишей back я проверяю, что в систему был установлен apk.

Если я пытаюсь установить тот же самый apk, просто запустив его в файловом менеджере, все идет правильно. Apk устанавливается и процесс установки менеджера пакетов завершается за несколько секунд.

Итак, что я могу сделать, чтобы менеджер пакетов работал правильно при программной установке?

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Проблема была в конкретном диспетчере задач Galaxy Tab. Из-за ошибки в моем приложении он использовал 100% CPU. И кажется, что диспетчеру задач просто не удалось включить диспетчер пакетов. После того, как я исправил ошибку со 100% процессором, Менеджер пакетов начинает работать правильно.

0 голосов
/ 02 марта 2012

Для этого вы должны включить apk, которые вы хотите установить, на устройство в проекте, который их установит.Затем вы можете использовать намерение для запуска установки.

Проверьте это - http://www.androidsnippets.com/install-an-apk-via-intent

Другим способом было бы создать намерение ACTION_VIEW и использовать метод намерения setDataAndType.Затем используйте метод контекста startActivityForResult () для установки APK.

Вам также может понадобиться разрешение пользователя INSTALL_PACKAGES в манифесте.

...