我们有一个COSU应用程序,可以通过呼叫Android Management API来管理其锁定状态。为此,我们收到了带有devices.list
查询的设备列表,将每个设备的hardwareInfo.serialNumber
与IMEI进行比较,从Build.getSerial()
接收,然后使用以下代码应用不同的策略:
fun patchDevice(device: Device, policyName: String) {
device.policyName = policyName
androidManagementClient.enterprises().devices().patch(device.name, device).execute()
}
但是,根据文档,硬件设备标识符在Android Q中不再可用。(链接(现在,我们使用Android 8的设备,但我怀疑我们的代码会破坏较新的OS。因此,问题是:
是否有其他方法可以识别列表中的设备,而不知道其硬件ID?
,或者有一种方法可以保证使用read_phone_state仍然会在Android Q上为我们提供IMEI?在文档中,指出如果您的应用程序是设备或配置文件所有者应用程序,则仅需要read_phone_state许可即使您的应用程序Targets AndroidQ。,Amapi,即使您的应用程序TRAGENS ANDROID Q. 有自己的设备所有者应用程序,所以我不确定在我们的情况下是否有效。
这里最简单的方法是通过托管配置将设备name
传递给COSU应用程序。您可以使用该名称来调用API。使用这种方法,您无需访问设备的序列号。
在我以前的答案之一中详细说明了这种方法。