有没有可能有一个;档案所有者“;Android棒棒糖中的应用程序不同时存在

有没有可能有一个;档案所有者“;Android棒棒糖中的应用程序不同时存在,android,nfc,android-5.0-lollipop,device-policy-manager,device-owner,Android,Nfc,Android 5.0 Lollipop,Device Policy Manager,Device Owner,棒棒糖API提供了两个新特性“配置文件所有者”和“设备所有者”()。在他们之间,他们提供的只是我需要的一个应用程序的功能,家长可以用它来控制他们孩子的设备活动。每个系统的设置流程如下: 设备所有者 在设备安装过程中,使用NFC,您可以告诉Android您希望您的应用程序成为设备所有者。Android然后从URL下载应用程序,设备被加密并作为设备所有者配置应用程序。因此,对于从Google Play安装我的应用程序的人,我需要该应用程序提示他们重新设置设备出厂设置,然后在另一台设备上安装另一个应用

棒棒糖API提供了两个新特性“配置文件所有者”和“设备所有者”()。在他们之间,他们提供的只是我需要的一个应用程序的功能,家长可以用它来控制他们孩子的设备活动。每个系统的设置流程如下:

设备所有者 在设备安装过程中,使用NFC,您可以告诉Android您希望您的应用程序成为设备所有者。Android然后从URL下载应用程序,设备被加密并作为设备所有者配置应用程序。因此,对于从Google Play安装我的应用程序的人,我需要该应用程序提示他们重新设置设备出厂设置,然后在另一台设备上安装另一个应用程序,然后NFC将它们连接在一起。随着安装流程的进行,这远远不是理想的。但是一旦设置完成,设备所有者API为这个用例提供了非常丰富的特性集

档案所有者 这方面的设置更为直接:用户从Google Play安装应用程序,然后可以提示用户授予应用程序配置文件所有者权限。如果用户同意,该设备由Android加密,重新启动后,该设备有两个使用相同启动器(主屏幕)的“共存”配置文件。设置可能更直接,但最终结果并不是我真正需要的,因为应用程序只能控制托管配置文件下的应用程序

问题: 所以我想我实际上有两个问题:是否有可能制作一个配置文件所有者应用程序来控制整个用户配置文件,即不是一个共同呈现的托管配置文件?或者,是否有可能使设备所有者应用程序具有更简单的设置流程,不需要出厂重置和NFC通气(根不是选项)?这两种方法之间的一些中间地带是理想的。

答案(1):托管配置文件作为单独的角色工作,配置文件下的所有应用程序都是不同的(它们是不同的独立应用程序实例),与新用户类似。 配置文件所有者是托管配置文件的所有者,因此与设备所有者相比,它没有太多的能力和功能,因此无法控制整个用户配置文件

回答(2):要创建设备所有者,必须使用NFC方法,因为一旦您的设备设置完毕,它就会被设置,之后您就不能将您的应用程序设置为设备所有者(除非您使用根方法)。 您可以按照给定的链接创建设备所有者

(一)


2)

正如所说,设备上只能有一个设备所有者,但可以有多个配置文件所有者。每个配置文件所有者将为1个用户激活

这可以通过在DevicePolicyManager中调用createAndInitializeUser api来实现

我能够创建多个配置文件所有者,但仍在努力寻找是否有办法让设备所有者与配置文件所有者对话

是否可以制作一个配置文件所有者应用程序来控制整个用户配置文件,即不是一个共同呈现的托管配置文件

行动(供应)(管理)(档案) 配置文件所有者应用程序通过使用action DevicePolicyManager.action_PROVISION_managed_配置文件发送意图来创建托管配置文件

让我们敞开心扉

Javadoc对行动(规定)和管理(管理)的评论说:

/**
* ... 启动设置托管配置文件的配置流。
* ...
* ... 从中启动资源调配的用户,以及
*托管配置文件共享一个启动器。。。
*/
因此,行动、供应、管理的配置文件可能无助于实现您的目标

操作\u提供\u管理\u用户 该文件中唯一一个看起来可能有用的其他操作是操作\u设置\u管理的\u用户

让我们看一下Javadoc注释。它说:

/**
* ... 启动设置托管用户的配置流。
* ...
*此意图通常由移动设备管理应用程序(MDM)发送。
*配置将用户配置为托管用户,并将MDM设置为配置文件
*对用户具有完全控制权的所有者。
太好了!有什么问题吗

*。。。设置只能在用户设置完成之前进行
*已完成。。。
*/
哦(因此,如果您的设备没有根目录,我认为您必须在工厂重置之后,在安装向导完成之前,以某种方式安装您的配置文件所有者应用程序

旁注 我看了某份白皮书的一部分。它说:“在托管资源调配过程中,调用名为ACTION_PROVISION_managed_PROFILE的意图。如果用户有一个预先存在的个人帐户,则托管的配置文件是单独的,但同时存在。”在我看来,这似乎意味着,如果你在没有用户帐户的设备上调用ACTION\u PROVISION\u MANAGED\u PROFILE,你的应用程序可能会控制整个用户配置文件。但是,我想你必须在工厂重置之后,在安装向导完成之前,以某种方式安装你的配置文件所有者应用程序

做你想做的事 很遗憾,我认为你想要的是不可能的。如果你想,你可以向Android提交一个功能请求,并要求他们让它成为可能。如果你这样做,请在下面留下一条评论,并附上该功能请求的URL。如果你没有足够的信誉点发表评论,请给我发电子邮件至
tealhill
at
gmail.com
,然后让我回复我代表你发表评论

变通办法 我的理论是,一个可能的解决方法可能是,你的应用程序下载并启动一个第三方应用程序,该应用程序可以为手机设置根目录。大多数手机都是可根目录的。一旦手机设置根目录,你的应用程序就可以成为设备所有者。之后,你的应用程序可能可以取消根目录,仍然是设备所有者。或者不知道


如果你的应用程序无法解除手机的启动,或者如果它不尝试,手机将永远处于植根状态。这可能是一个安全风险。你可能应该警告用户。

我还没有看过NFC要求,但我希望它们可以使用NFC标签来实现,而不是使用对等NFC设备。Ye