Google Play EMM API поддерживает следующие методы распространения общедоступных и частных приложений:
- Пользователи могут вручную устанавливать приложения из управляемого магазина Google Play.
- ИТ-администраторы могут удаленно устанавливать приложения на устройства пользователей.
Установите приложения вручную из управляемого магазина Google Play.
Вы можете определить, какие приложения доступны пользователю для установки, в policy
Device
и настроить их, вызвав Devices.update
. При подготовке нового устройства вам следует установить политику до добавления управляемой учетной записи Google Play на устройство, иначе политика не будет применяться в течение короткого периода времени после добавления учетной записи на устройство.
Поведение управляемого Play Store определяется значением policy.productAvailabilityPolicy
:
-
all
: доступны все общедоступные приложения из Play Store. -
whitelist
: доступны только приложения, перечисленные вpolicy.productPolicy
.
В обоих случаях все приложения в policy.productPolicy
по умолчанию добавляются в макет корпоративного магазина. Макет корпоративного магазина — это домашняя страница управляемого магазина Play Store, если выбран whitelist
, и доступ к нему можно получить на вкладке «Рабочие приложения», если выбраны all
. Вы можете разрешить своему клиенту настраивать макет корпоративного магазина, встроив управляемый iframe Google Play (см. Организация приложений с помощью управляемого iframe Google Play ) или интегрировав его с API пользовательского макета магазина .
Удаленно устанавливать приложения на устройства пользователей
Чтобы удаленно установить (также называемую принудительной установкой) приложение на устройстве пользователя, установите policy.productPolicy.autoInstallPolicy
в policy
Device
. При подготовке нового устройства вам следует установить политику до добавления управляемой учетной записи Google Play на устройство, иначе политика не будет применяться в течение короткого периода времени после добавления учетной записи на устройство.
Для autoInstallMode
можно установить:
-
doNotAutoInstall
: приложение не устанавливается автоматически. -
autoInstallOnce
: приложение автоматически устанавливается один раз; если пользователь удалит приложение, оно не будет установлено снова. -
forceAutoInstall
: приложение устанавливается автоматически. Если пользователь удаляет приложение, оно будет установлено снова. На управляемых устройствах ЦОД должен блокировать удаление с помощьюDevicePolicyManager.setUninstallBlocked
.
В случае сбоя (потеря подключения, нехватка места для хранения и т. д.) установка повторяется автоматически до тех пор, пока она не завершится успешно. Применяется стратегия экспоненциальной отсрочки повторных попыток, чтобы избежать потери заряда батареи и данных в случае неисправимых сбоев.
Приоритет установки
Вы можете выбрать порядок установок, установив autoInstallPriority
. Приоритет должен быть целым числом без знака, а значение по умолчанию — 0. Приложения будут устанавливаться в порядке возрастания приоритета, то есть приложения с более низким значением приоритета будут установлены первыми.
Установить ограничения
Вы можете установить ограничения установки для каждого приложения, установив autoInstallConstraint
, что позволит вам контролировать необходимое состояние устройства во время установки:
- должно ли устройство быть подключено к сети Wi-Fi,
- должно ли устройство заряжаться,
- и должно ли устройство простаивать (не использоваться активно пользователем).
Если ограничения не будут выполнены немедленно, затронутые установки будут поставлены в очередь до тех пор, пока ограничения не будут выполнены.
В autoInstallConstraint
между полями применяется правило AND. Например, при использовании следующего autoInstallConstraint
устройство должно одновременно заряжаться и быть подключено к сети без ограничений (например, Wi-Fi), чтобы приложение могло быть установлено:
"autoInstallConstraint": [
"chargingStateConstraint" : "chargingRequired",
"networkTypeConstraint" : "unmeteredNetwork"
]
Автоматическая установка приложений на вновь подготовленных устройствах
API EMM Google Play отправляет уведомление NewDeviceEvent
при первой подготовке устройства. Чтобы автоматически устанавливать приложения на вновь подготовленные устройства, прослушивайте уведомления NewDeviceEvent
. Из каждого NewDeviceEvent
получите userId
и deviceId
, а затем вызовите Devices.update
чтобы установить политику для этого устройства.
Чтобы узнать, как подписаться на уведомления EMM, см. Настройка уведомлений EMM .
Распространение приложений для закрытого тестирования
Закрытое тестирование позволяет разработчикам приложений получать отзывы о ранних версиях своих приложений от доверенных пользователей. Разработчики могут настроить закрытые тесты в консоли Google Play. Вы используете Play EMM API, чтобы позволить ИТ-администраторам распространять закрытые версии (также называемые треками) приложений определенным пользователям. Ваши корпоративные клиенты могут использовать эту функцию не только для тестирования сторонних приложений, но и для тестирования частных приложений, разработанных собственными силами.
Подходящие приложения
Прежде чем разработчик добавит предприятие в список закрытых тестировщиков приложения, приложение должно соответствовать следующим критериям:
- Рабочая версия приложения опубликована в Google Play.
- В Play Console расширенные управляемые функции Google Play включены на странице цен и распространения приложения.
- Любые закрытые версии приложения соответствуют требованиям к коду версии .
Добавить предприятие в закрытые тесты
Разработчики приложений могут добавлять предприятия в тесты, использующие методы закрытого альфа-тестирования или альфа-тестирования с использованием групп Google . Инструкции см. в руководстве по настройке открытого, закрытого или внутреннего теста . Разработчику необходимо ввести идентификатор организации (также называемый идентификатором предприятия ) каждого участвующего предприятия. ИТ-администраторы могут предоставить идентификатор своей организации сторонним разработчикам приложений, выполнив следующие действия:
- Войдите в управляемый магазин Google Play .
- Нажмите «Настройки администратора» .
- Скопируйте строку идентификатора организации из поля информации об организации и отправьте ее разработчику.
Дополнительные требования для частных приложений
Для частных приложений разработчику также необходимо добавить идентификатор организации каждого участвующего предприятия на странице цен и распространения Play Console. Инструкции см. в разделе Публикация частного приложения .
Раздавать закрытые треки пользователям
Чтобы получить список треков, доступных предприятию для указанного приложения, вызовите Products.get
. Список appTracks[]
, содержащийся в ответе, включает треки, доступные для каждого приложения. appTracks[].trackAlias
— это читаемое пользователем имя трека, которое можно отобразить в консоли EMM, а appTracks[].trackId
— это машиночитаемый идентификатор трека.
Чтобы предоставить пользователю видимость закрытой версии приложения, установите policy.productPolicy[].trackIds[]
в policy
Device
. Если для устройства доступно несколько дорожек, будет установлена доступная версия с самым высоким кодом версии.
TrackIds будут автоматически удалены из вызова Products.get
в определенных сценариях, например в следующих:
- APK-файл трека переносится на другой трек или в производство.
- Производственная версия обновлена до более высокой версии, чем трек.
- Застройщик останавливает путь.
Отслеживайте лицензии платных приложений
Для платных приложений объект Grouplicenses
отслеживает, сколько лицензий принадлежит предприятию и сколько лицензий используется. Вы можете позвонить на Grouplicenses.get
, чтобы получить сведения о лицензии для приложения.
Прежде чем платное приложение можно будет установить на устройство, предприятию необходимо иметь лицензию на это приложение. Если лицензия доступна, приложение устанавливается на устройство и создается объект Entitlements
. Объект Entitlements
связывает лицензию с пользователем и уменьшает количество доступных лицензий для приложения. Если доступных лицензий нет, установка приложения завершается неудачей и объект Entitlements
не создается.
Объекты Grouplicenses
и Entitlements
не используются приложениями, которые распространяются бесплатно.