Отправка отзывов о приложениях поставщикам услуг по управлению мобильной инфраструктурой предприятия

Поставщики услуг по управлению мобильной инфраструктурой предприятия (EMM) предлагают организациям решения для управления устройствами Android и установленными на них приложениями. Обычно такие решения доступны в виде веб-консолей, которые называются консолями EMM. С помощью консоли EMM системные администраторы могут управлять устройствами и приложениями от лица организации.

Приложения, предназначенные для корпоративных организаций, могут отправлять отзывы в EMM в виде состояний приложений с ключами. Поставщики EMM могут использовать API для получения данных о состоянии приложения с ключом, которые затем можно отобразить в консоли EMM. Этот канал связи позволяет системным администраторам получать отзывы о статусе приложений, установленных на управляемых устройствах.

Например, почтовый клиент может использовать статусы приложений с ключом, чтобы подтвердить успешную настройку аккаунта, сообщить об ошибках синхронизации или отправить другие обновления статуса, которые разработчик приложения считает нужными.

Компоненты статуса приложения с ключом

Состояние приложения с ключом состоит из следующих элементов:

  • Ключ. Уникальный идентификатор состояния приложения. Используйте не более 100 символов.
  • Message. Необязательное сообщение с описанием состояния приложения. Максимальное количество символов – 1000. Примечание. Обычно сообщения должны быть значительно короче.
  • Данные. Необязательное машиночитаемое значение, предназначенное для EMM-консолей. Позволяет системным администраторам настраивать оповещения или фильтры на основе этого значения. Например, системный администратор может настроить оповещение, если поле данных battery_percentage < 10. Максимальное количество символов – 1000.
  • Серьезность. Степень серьезности состояния приложения. Допустимые значения: SEVERITY_ERROR и SEVERITY_INFO (по умолчанию). Устанавливайте уровень серьезности SEVERITY_ERROR только для реальных ошибок, которые организация должна исправить.
  • Временная метка. Когда задается состояние приложения с ключом, оно автоматически отправляется с временной меткой в миллисекундах с начала эпохи.

Отправка отзывов об управляемых конфигурациях

Если ваше приложение поддерживает управляемые конфигурации, рекомендуем отправлять статусы приложений с ключами, чтобы сообщать системным администраторам о состоянии заданных ими конфигураций. Ниже приведен пример того, как это можно сделать.

статусы приложений с ключами для управляемых конфигураций;
  1. Системные администраторы используют консоль EMM, чтобы задавать и отправлять управляемые конфигурации для приложения, установленного на полностью управляемом устройстве или в рабочем профиле. Например:
    • Громкость: 50 %
    • Валюта: USDD
  2. Приложение попытается применить настройки. Громкость будет установлена на 50%, но код валюты недействителен и не может быть применен.
  3. В зависимости от статуса каждой конфигурации приложение устанавливает состояние приложения с ключом. Каждое состояние приложения с ключом содержит уникальный ключ и сообщение с подробными сведениями о состоянии. Рекомендуем по возможности использовать ключ управляемой конфигурации. Пример:
    Ключ Сообщение Уровень серьезности Временная метка
    volume Выбрано: 50% SEVERITY_INFO 1554461130
    currency Валюта USDD не распознана. SEVERITY_ERROR 1554461130
  4. Поставщик услуг 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

    Collection states = 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);

Тестирование состояний приложения с ключом

Подробные инструкции по тестированию приведены в статье Как протестировать отзывы о приложении.