10

我正在使用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);

像往常一样,如果未启用“从未知来源安装”安全设置,则会弹出一个对话框,将您发送到“设置”应用程序以启用它。但是,在托管配置文件应用程序中,无论是否检查了该安全设置,都会弹出此对话框。这些设置似乎没有反映在托管配置文件中(这是有道理的,因为它是一个完全独立的设置数据库)。

我试过直接打开设置应用,但还是一样。它只是进入标准设置应用程序,而不是托管配置文件设置应用程序。

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

编辑:

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

4

2 回答 2

6

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

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

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

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

 adb install appname.apk

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

于 2015-02-21T12:31:56.763 回答
0

如下所示,在 Android Studio 中编辑配置,然后单击为所有用户安装应用程序以安装工作配置文件和普通管理员的检查,同样取消选中正常安装。 在此处输入图像描述

于 2021-09-30T09:30:23.217 回答