Android 管理 API: 在 android Q 上的设备列表中查找设备

Android management API: find device in list of devices on android Q

我们有一个 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()
 }

但是,根据文档,android Q 中不再提供硬件设备标识符。(link) 现在,我们使用 Android 8 的设备,但我怀疑我们的代码将在较新的 OS 上中断。所以,问题是:

  1. 有没有其他方法可以在不知道其硬件 ID 的情况下识别列表中的设备?

  2. 或者也许有一种方法可以保证使用 READ_PHONE_STATE 仍然会在 Android 上为我们提供 IMEI Q?在文档中指出 如果您的应用是设备或配置文件所有者应用,您只需要 READ_PHONE_STATE 权限即可访问不可重置的设备标识符,即使您的应用面向 Android 问: 但是,AMAPI 有自己的设备所有者应用程序,所以我不确定这是否适用于我们的情况。

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

此方法在 中有详细说明。