Android 12工作配置文件设备标识



随着Android 12的最新变化,没有办法在工作配置文件中获得任何类型的设备标识符。本文指定在工作配置文件中使用自定义DPC的Enrollment ID:

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,因为它需要配置文件所有者范围…有什么办法有企业id,注册id,或一些标识符在Android 12的工作配置文件模式?

亲切的问候

这似乎是默认支持:DevicePolicyManager#setOrganizationId(java.lang.String)

设置工作配置文件或被管理设备的企业ID。这是为设备生成特定于注册的ID的必要条件,请参见getEnrollmentSpecificId()。建议企业ID长度不超过6个字符,不超过64个字符。

仍然有一个替代选项可用:

  • 授予DELEGATION_CERT_INSTALL权限并使用Build.getSerial()

我猜您正在寻找一个"工作策略控制器":https://developer.android.com/work/dpc/build-dpc

但是这里写着:

注意:本指南不包括在企业控制下的工作配置文件是设备上唯一配置文件的情况。

更多信息请参见部署场景。

因为我不知道是哪种情况,这可能是我能提供的最好的了。文档的这一部分至少解释了正在考虑的场景,并详细解释了它们。作为EMM提供商,您可以直接寻求他们的支持。首先,它仍然可能有助于确定给定的场景,因为它规定了可以做什么以及如何做。

对于Android管理API,我建议审查HardwareInfo.serialNumber。这个API返回关于设备硬件的信息,特别是设备序列号或新注册的Android 12 Work Profile设备上的ESID(注册特定ID)。

HardwareInfo.enterpriseSpecificId还将报告ESID(特定于注册的ID),该ID唯一地标识特定组织中个人拥有的设备。在同一组织中注册时,这个ID在不同设置中持续存在,甚至在同一物理设备上进行出厂重置。请注意,此ID在Android 12及以上设备上具有工作配置文件的个人设备上可用。

最新更新