我正在使用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()
方法。
编辑:
我还尝试过使用Manage Profile Gmail应用安装。一样。似乎无法在托管个人资料中在Google Play商店之外安装应用。
答案 0 :(得分:3)
Google限制在托管个人资料中直接安装.apk文件。
警告框的异常行为,表示用户转到设置并启用来自未知来源的安装"即使启用它也被视为一个问题。请参阅Google问题页面here。
是否有办法更改托管配置文件的此安全设置 或者从个人资料所有者应用安装应用?
目前,在托管配置文件中没有安装.apk文件的API或解决方法。但是对于测试,您可以尝试通过adb
adb install appname.apk
此命令将在个人和托管配置文件中安装该应用程序。希望这能帮到你!