Установка приложения в управляемый профиль

Я играю с образцом BasicManagedProfile и хочу установить пользовательское приложение только для управляемого профиля. Я могу легко зайти в игровой магазин, скачать и установить приложение, и оно появится только в приложениях рабочего профиля.

Однако использование стандартного способа Intent для установки apk с устройства, похоже, не работает.

    final Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
    intent.setDataAndType(Uri.fromFile(new File(APK_LOC)), "application/vnd.android.package-archive");
    intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
    intent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, getPackageName());
    startActivityForResult(intent, REQUEST_INSTALL, null);

Как обычно, если параметр безопасности "Установить из неизвестных источников" не включен, появится диалоговое окно, которое отправит вас в приложение "Настройки", чтобы включить его. Однако в приложении с управляемым профилем это диалоговое окно всегда появляется независимо от того, установлен этот параметр безопасности или нет. Кажется, настройки не отражаются в управляемом профиле (что имеет смысл, потому что это совершенно отдельная база данных настроек).

Я пытался открыть приложение "Настройки" напрямую, но оно все равно остается прежним. Он просто идет в стандартное приложение "Настройки", а не в приложение "Настройки управляемого профиля".

Есть ли способ изменить этот параметр безопасности для управляемого профиля или установить приложение из приложения владельца профиля? Так как мое приложение является владельцем профиля, кажется, это должно быть разрешено. Это легко возможно для системных приложений, но сторонние приложения не будут работать с DevicePolicyManager#enableSystemApp() метод.

РЕДАКТИРОВАТЬ:

Я также пытался установить приложение из приложения Gmail "Управление профилем". То же самое. Похоже, невозможно устанавливать приложения за пределами магазина Google Play в управляемом профиле.

2 ответа

Решение

Google ограничил прямую установку файлов.apk в управляемом профиле.

Необычное поведение окна оповещения о том, что пользователь должен перейти к настройкам и включить "установку из неизвестных источников", даже если она включена, рассматривается как проблема. Смотрите страницу вопросов Google здесь.

Есть ли способ изменить этот параметр безопасности для управляемого профиля или установить приложение из приложения владельца профиля?

В настоящее время нет API или обходных путей для установки файла.apk в управляемом профиле. Но для тестирования можно попробовать через adb

 adb install appname.apk

Эта команда установит приложение как в личном, так и в управляемом профиле. Надеюсь, это поможет вам!

Перейдите к редактированию конфигурации в Android Studio, как показано ниже, а затем нажмите «Установить для всех пользователей», чтобы установить приложение для рабочего профиля и обычного администратора, аналогичным образом снимите флажок «Обычная установка».

Другие вопросы по тегам