我正在使用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 商店之外安装应用程序。