将应用安装到托管个人资料

Dee*_*eeV 8 android android-5.0-lollipop android-managed-profile

我正在使用BasicManagedProfile示例,并希望仅将自定义应用程序安装到托管配置文件.我可以轻松访问Play商店,下载并安装应用程序,它只会显示在工作资料的应用程序中.

但是,使用标准的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);
Run Code Online (Sandbox Code Playgroud)

与正常情况一样,如果未启用"从未知来源安装"安全设置,则会弹出一个对话框,将您转到"设置"应用以启用它.但是,在托管配置文件应用程序中,无论是否选中该安全设置,都会弹出此对话框.似乎设置没有反映在托管配置文件中(这是有道理的,因为它是一个完全独立的设置数据库).

我试过直接打开"设置"应用,但它仍然是相同的.它只是转到标准设置应用程序而不是托管配置文件设置应用程序.

有没有办法更改托管配置文件的此安全设置或从配置文件所有者应用程序安装应用程序?由于我的应用是个人资料所有者,因此似乎应该允许这样做.系统应用程序很容易实现,但第三方应用程序无法使用该DevicePolicyManager#enableSystemApp()方法.

编辑:

我还尝试从管理配置文件Gmail应用程序进行安装.一样.似乎无法在托管配置文件中在Google Play商店之外安装应用.

Sar*_*gan 6

Google 已限制在托管配置文件中直接安装 .apk 文件。

警告框的异常行为表明用户转到设置并启用“从未知来源安装”,即使它已启用也被认为是一个问题。请参阅此处的 Google 问题页面。

有没有办法更改托管配置文件的此安全设置或从配置文件所有者应用程序安装应用程序?

目前没有 API 或变通方法可以在托管配置文件中安装 .apk 文件。但是为了测试,您可以尝试通过 adb

 adb install appname.apk
Run Code Online (Sandbox Code Playgroud)

此命令将在个人和托管配置文件中安装应用程序。希望这对你有帮助!