应用程序是否有办法获取设备范围内活动和已安装的设备管理员列表?
DevicePolicyManager.getActiveAdmins()能够获取活动(已启用)设备管理员的列表,而PackageManager.queryBroadcastReceivers()能够获取已安装设备管理员的列表。但是,它们只在自己的用户上下文中获取列表。在多用户环境中,他们无法获取设备范围的列表(在Nexus 5上的Android M上进行测试)。
我问,因为显然在三星Knox容器中,getActiveAdmins()返回设备范围的列表(包括MyKnox代理),而queryBroadcastReceivers()返回容器内的列表(在Galaxy S6和Android M上的Android L上测试) / N在Galaxy S7上。
我知道Knox利用Android的多用户功能来实现容器,但显然Android和多用户和Knox容器之间存在一些行为差异。我希望能够从Knox容器中获取活动和已安装设备管理员的合法列表。现在我知道MyKnox代理处于活动状态(通过getActiveAdmins())但尚未安装(通过queryBroadcastReceivers())。这没有意义。