Android Management API:在Android Q上的设备列表中查找设备

时间:2019-06-24 09:22:50

标签: android android-management-api cosu

我们有一个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具有它自己的设备所有者应用,因此我不确定在我们的情况下是否可以使用。

1 个答案:

答案 0 :(得分:1)

这里最简单的方法是通过托管配置将设备name传递到您的COSU应用。然后,您的COSU应用可以使用该名称调用API。使用这种方法,您无需访问设备的序列号。

此方法在one of my previous answers中有详细说明。