Поставщики услуг по управлению мобильной инфраструктурой предприятия (EMM) предлагают организациям решения для управления устройствами Android и установленными на них приложениями. Обычно такие решения доступны в виде веб-консолей, которые называются консолями EMM. С помощью консоли EMM системные администраторы могут управлять устройствами и приложениями от лица организации.
Приложения, предназначенные для корпоративных организаций, могут отправлять отзывы в EMM в виде состояний приложений с ключами. Поставщики EMM могут использовать API для получения данных о состоянии приложения с ключом, которые затем можно отобразить в консоли EMM. Этот канал связи позволяет системным администраторам получать отзывы о статусе приложений, установленных на управляемых устройствах.
Например, почтовый клиент может использовать статусы приложений с ключом, чтобы подтвердить успешную настройку аккаунта, сообщить об ошибках синхронизации или отправить другие обновления статуса, которые разработчик приложения считает нужными.
Компоненты статуса приложения с ключом
Состояние приложения с ключом состоит из следующих элементов:
- Ключ. Уникальный идентификатор состояния приложения. Используйте не более 100 символов.
- Message. Необязательное сообщение с описанием состояния приложения. Максимальное количество символов – 1000. Примечание. Обычно сообщения должны быть значительно короче.
- Данные. Необязательное машиночитаемое значение, предназначенное для EMM-консолей. Позволяет системным администраторам настраивать оповещения или фильтры на основе этого значения. Например, системный администратор может настроить оповещение, если поле данных
battery_percentage < 10. Максимальное количество символов – 1000. - Серьезность. Степень серьезности состояния приложения. Допустимые значения:
SEVERITY_ERRORиSEVERITY_INFO(по умолчанию). Устанавливайте уровень серьезностиSEVERITY_ERRORтолько для реальных ошибок, которые организация должна исправить. - Временная метка. Когда задается состояние приложения с ключом, оно автоматически отправляется с временной меткой в миллисекундах с начала эпохи.
Отправка отзывов об управляемых конфигурациях
Если ваше приложение поддерживает управляемые конфигурации, рекомендуем отправлять статусы приложений с ключами, чтобы сообщать системным администраторам о состоянии заданных ими конфигураций. Ниже приведен пример того, как это можно сделать.
- Системные администраторы используют консоль EMM, чтобы задавать и отправлять управляемые конфигурации для приложения, установленного на полностью управляемом устройстве или в рабочем профиле.
Например:
- Громкость: 50 %
- Валюта: USDD
- Приложение попытается применить настройки. Громкость будет установлена на 50%, но код валюты недействителен и не может быть применен.
- В зависимости от статуса каждой конфигурации приложение устанавливает состояние приложения с ключом.
Каждое состояние приложения с ключом содержит уникальный ключ и сообщение с подробными сведениями о состоянии. Рекомендуем по возможности использовать ключ управляемой конфигурации.
Пример:
Ключ Сообщение Уровень серьезности Временная метка volumeВыбрано: 50% SEVERITY_INFO1554461130currencyВалюта USDD не распознана. SEVERITY_ERROR1554461130 - Поставщик услуг EMM получает статусы приложений с ключом, заданные приложением, и показывает их в консоли EMM. Пример:
Конфигурация Статус Требуется действие Время Громкость Выбрано: 50% Нет 5 апреля 2019 г., 10:45:30 Валюта ОШИБКА: валюта USDD не распознана. Да 5 апреля 2019 г., 10:45:30 Поставщик услуг EMM также должен явно помечать все полученные состояния с помощью
SEVERITY_ERRORдля системного администратора. Администраторы могут просматривать информацию в консоли EMM и исправлять ошибки в конфигурациях.
Как сообщить об исправленных ошибках
После устранения ошибки немедленно отправьте последующее состояние приложения, чтобы EMM-консоль не показывала сообщение об ошибке бесконечно. Это последующее состояние должно включать:
- Тот же ключ, что и в исходном сообщении об ошибке.
- Уровень серьезности
SEVERITY_INFO, который указывает, что состояние не является ошибочным и не требует от организации никаких дальнейших действий.
Как добавить в приложение поддержку состояний с ключами
Ниже описано, как интегрировать статусы приложений с ключом в приложение.
Шаг 1. Добавьте репозиторий Google Maven в файл settings.gradle
Добавьте репозиторий Maven от Google в файл settings.gradle проекта, как показано ниже:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
}
}
Шаг 2. Добавьте библиотеку отзывов в файл build.gradle на уровне модуля
Добавьте в файл build.gradle на уровне модуля следующую зависимость:
dependencies {
implementation 'androidx.enterprise:enterprise-feedback:1.0.0'
}
Шаг 3. Получите экземпляр KeyedAppStatesReporter
В методе onCreate() получите и сохраните экземпляр KeyedAppStatesReporter.
Это позволит наладить канал связи между вашим приложением и поставщиками услуг по управлению мобильной инфраструктурой предприятия.
Kotlin
val reporter = KeyedAppStatesReporter.create(context)
Java
KeyedAppStatesReporter reporter = KeyedAppStatesReporter.create(context);
Шаг 4. Создайте коллекцию состояний приложения с ключами
При создании состояний приложения с ключом следуйте приведенным ниже рекомендациям.
- Никогда не включайте в состояние информацию, позволяющую идентифицировать личность. Состояния приложений с ключами не подходят для конфиденциальных данных.
- Следите за тем, чтобы статусы приложений с ключом не выходили за пределы, указанные в
MAX_KEY_LENGTH,MAX_MESSAGE_LENGTHиMAX_DATA_LENGTH. - Один вызов
setStatesилиsetStatesImmediateограничен 300 КБ (примерно треть от общего объема, который можно хранить в день). Если вы превысите это ограничение, то можете столкнуться с ошибками. - Устанавливайте уровень серьезности
SEVERITY_ERROR, только если существует условие, которое организация должна исправить. - Если вы отправляете состояние приложения, содержащее ошибки, убедитесь, что вы также отправляете последующее состояние, когда ошибки устранены, чтобы EMM мог прекратить помечать ошибки в своей консоли.
- Для последующего состояния используйте тот же ключ, что и для исходного состояния, которое вернуло ошибку, и установите уровень серьезности
SEVERITY_INFO.
Приведенный ниже фрагмент кода создает коллекцию состояний приложения с ключами:
Kotlin
val states = hashSetOf(KeyedAppState.builder() .setKey("key") .setSeverity(KeyedAppState.SEVERITY_INFO) .setMessage("message") .setData("data") .build())
Java
Collectionstates = new HashSet<>(); states.add(KeyedAppState.builder() .setKey("key") .setSeverity(KeyedAppState.SEVERITY_INFO) .setMessage("message") .setData("data") .build());
Шаг 5. Настройте состояния приложения с ключом
Метод setStates() немедленно отправляет состояния приложения с ключами в приложение Google Play (название пакета: com.android.vending), если оно установлено на устройстве, а также всем администраторам устройства или рабочего профиля.
Kotlin
keyedAppStatesReporter.setStates(states)
Java
keyedAppStatesReporter.setStates(states);