У нас есть приложение cosu, которое может управлять состоянием блокировки с помощью вызовов API управления Android. Для этого мы получаем список устройств с запросом 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, но я подозреваю, что наш код будет работать на более новых ОС. Итак, вопросы:
1) Есть ли другой способ идентифицировать устройство в списке, не зная его аппаратных идентификаторов?
2) Или, может быть, есть способ гарантировать, что использование READ_PHONE_STATE все равно предоставит нам IMEI на Android Q? В документации указано, что Если ваше приложение является приложением владельца устройства или профиля, вам нужно только разрешение READ_PHONE_STATE для доступа к не сбрасываемым идентификаторам устройств, даже если ваше приложение предназначено для Android Q. Однако AMAPI имеет свой собственное приложение владельца устройства, поэтому я не уверен, что это будет работать в нашем случае.