Android установить apk программно - PullRequest
0 голосов
/ 08 июня 2018

У меня были некоторые проблемы при попытке установить apk программно и перезагрузить эмулятор Android после установки.Я ссылался на эту тему .

Вот мой код:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri apkURI = FileProvider.getUriForFile(mActivity, mActivity.getApplicationContext().getPackageName() + ".provider", new File(fullPath));
    intent.setDataAndType(apkURI, "application/vnd.android.package-archive");
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    mActivity.startActivity(intent);

Есть ли способ установить apk без запуска намерения?Потому что я выполняю описанный выше метод в doInBackground() моего AsyncTask.Затем в onPostExecute() мне нужно показать фрагмент, подтверждающий, что установка прошла успешно.

Однако, с помощью кода выше, после вызова startActivity() он просто закрыл все мои фрагменты.Есть идеи?

Спасибо заранее!

1 Ответ

0 голосов
/ 08 июня 2018

К сожалению, вы не можете установить приложение полностью в фоновом режиме (при условии, что это то, что вы пытаетесь сделать, запустив Intent с doInBackground()) без вмешательства пользователя.Когда вы запускаете это намерение, вы просто передаете намерение системному менеджеру пакетов и просите его установить его.Менеджер пакетов должен будет запросить подтверждение у пользователя.Без прав root или специальных прав вы не сможете по-настоящему программно установить APK в фоновом режиме даже с разрешением android.permission.INSTALL_PACKAGES.Надеюсь, что это отвечает на ваш вопрос!

...