android - 将应用程序安装到受管理的配置文件

标签 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);

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

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

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

编辑:

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

最佳答案

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

警告框的异常行为提示用户转到设置并启用“从未知来源安装”,即使它已启用也被视为一个问题。请参阅 Google 问题页面 here .

Is there a way to change this security setting for a managed profile or install an app from the profile owner app?

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

 adb install appname.apk

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

关于android - 将应用程序安装到受管理的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139281/

相关文章:

android - 从文件中读取对象会抛出 IllegalAccessException

安卓电视应用

android - 获取 Android 工作配置文件中的应用程序列表

android - 如何使用android.webkit.PluginStub

android - 如何在android中创建隐藏目录?

android-fragments - 替换 fragment 不会完全替换前一个 fragment 。为什么这样?

android - 更改 Android kitkat 上的状态栏颜色

android - 创建一个没有透明度的波纹可绘制对象

Android 托管配置文件 - 配置文件所有者无法设置用户限制 no_add_user