我们有一个cosu应用,可以通过调用Android管理API来管理其锁定状态。为此,我们收到带有devices.list
查询的设备列表,将每个设备的hardwareInfo.serialNumber
与从Build.getSerial()
收到的IMEI进行比较,然后使用以下代码应用不同的策略:
fun patchDevice(device: Device, policyName: String) {
device.policyName = policyName
androidManagementClient.enterprises().devices().patch(device.name, device).execute()
}
Howewer,根据文档,硬件设备标识符在android Q中不再可用。(link)目前,我们在Android 8上使用设备,但是我怀疑我们的代码会在较新的OS上中断。因此,问题是:
1)在不知道其硬件ID的情况下,还有其他方法可以识别列表中的设备吗?
2)也许有一种方法可以确保使用READ_PHONE_STATE仍然可以在Android Q上为我们提供IMEI?在文档中指出,如果您的应用是设备或配置文件所有者应用,则即使您的应用定位到Android Q,您也只需READ_PHONE_STATE权限即可访问不可重置的设备标识符。 Howewer,AMAPI具有它自己的设备所有者应用,因此我不确定在我们的情况下是否可以使用。
答案 0 :(得分:1)
这里最简单的方法是通过托管配置将设备name
传递到您的COSU应用。然后,您的COSU应用可以使用该名称调用API。使用这种方法,您无需访问设备的序列号。
此方法在one of my previous answers中有详细说明。