在Android 12的最新更改中,无法在工作配置文件中获取任何类型的设备标识符。在this post中,指定在工作配置文件中使用注册ID和自定义DPC:
if(VERSION.SDK_INT >= VERSION_CODES.S) {
// getEnrollmentSpecificId will return an empty string ("")
// when organization id is not set
devicePolicyManager.setOrganizationId(organizationId);
devicePolicyManager.getEnrollmentSpecificId();
} else {
// existing functionality to retrieve device identifier(s)
}
但如果Android管理API中没有自定义DPC,我们就无法调用setOrganizationId,因为它需要配置文件所有者作用域......在工作配置文件模式下,有没有办法在Android 12上设置企业ID、注册ID或一些标识符?
此致
2条答案
按热度按时间uubf1zoe1#
这似乎是默认支持的:设备策略管理器#设置组织ID(java语言字符串)
设置工作配置文件或托管设备的企业ID。这是为设备生成注册特定ID的要求,请参阅
getEnrollmentSpecificId()
。建议企业ID长度至少为6个字符,但不超过64个字符。仍然有alternate option可用:
DELEGATION_CERT_INSTALL
权限并使用Build.getSerial()
。我猜你需要一个“工作策略控制者”:https://developer.android.com/work/dpc/build-dpc
但上面写着:
注意:本指南不包括企业控制下的工作配置文件是设备上唯一配置文件的情况。
有关详细信息,请参阅部署方案。
由于我不知道给出了哪种方案,这可能是我能提供的最好的方案。文档的这一部分至少解释了正在考虑的方案,并详细解释了它们。作为EMM提供商,您可能能够直接获得他们的支持。它仍然有助于确定给定的方案,开始-因为它规定了可以做什么以及如何做。
bkhjykvo2#
对于Android管理API,我建议查看
HardwareInfo.serialNumber
,该API返回有关设备硬件的信息,特别是新注册的Android 12工作配置文件设备上的设备序列号或ESID(注册特定ID)。HardwareInfo.enterpriseSpecificId
还将报告ESID(注册特定ID),该ID唯一标识特定组织中的个人设备。在同一组织注册后,此ID在设置中保持不变,甚至在同一物理设备上恢复出厂设置。请注意,此ID在Android 12及更高版本设备上具有工作配置文件的个人设备上可用。