API управления Android: найти устройство в списке устройств на android Q - PullRequest
0 голосов
/ 24 июня 2019

У нас есть приложение 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 имеет свой собственное приложение владельца устройства, поэтому я не уверен, что это будет работать в нашем случае.

1 Ответ

1 голос
/ 25 июня 2019

Самый простой подход - передать устройство name в приложение COSU через управляемую конфигурацию. Ваше приложение COSU может затем вызвать API, используя это имя. При таком подходе вам не нужно получать доступ к серийному номеру устройства.

Этот подход подробно объясняется в одном из моих предыдущих ответов .

...