Архивирование RCS-сообщений в Google Сообщениях

Фон

В этом документе рассказывается, как интегрировать, протестировать и проверить функцию архивирования RCS в Google Сообщениях.

Обзор решения

  • Клиентское архивирование. Поставщики услуг архивирования должны разработать приложение для Android, которое системные администраторы смогут развернуть на управляемых устройствах.
  • Работает на базе Google Сообщений. Чтобы использовать эту функцию, нужно сделать Google Сообщения мессенджером по умолчанию. Администраторы могут настроить это с помощью средств управления Android Enterprise.
  • Требуется Android Enterprise. Эта функция доступна только на полностью управляемых устройствах.

Рабочий процесс

Как работает архивирование RCS-сообщений
Рисунок 1. рабочий процесс архивирования RCS.
  1. Системный администратор развертывает приложение для архивации с помощью Android Enterprise.
  2. Необязательно. Системный администратор настраивает приложение для архивации с помощью элементов управления Android Enterprise.
    • Обязательно:
      • Приложению для архивирования требуется разрешение READ_SMS.
    • Рекомендуется:
      • Запретить пользователям управлять Google Сообщениями и приложением для архивации
      • Системный администратор назначает Google Сообщения клиентом по умолчанию для SMS и RCS.
      • При необходимости системный администратор может предварительно зарегистрировать приложение для архивирования с помощью MCM, если решение для архивирования поддерживает MCM.
  3. Системный администратор включает архивирование в Google Сообщениях с помощью MCM.
  4. Google Сообщения записывают данные сообщений в Android при событиях сообщений. Событие сообщения – это одно из следующих действий: сообщение отправлено, сообщение получено, сообщение изменено или сообщение удалено.
  5. Google Сообщения уведомляют приложение для архивирования о новом событии сообщения (как RCS, так и SMS/MMS).
  6. Приложение для архивирования считывает данные сообщений от поставщика Telephony.
  7. Приложение для архивирования собирает обновления в пакеты и отправляет их на сервер.

Реализация

Схема MCM для Google Сообщений

Архивация настраивается в Google Сообщениях с помощью ключа messages_archival, который принимает строковое значение, чтобы администраторы могли указать свое приложение для архивации по названию пакета. Если значение пустое, равно null или ключ отсутствует, архивирование отключено. Если значение указано, архивация включена и Google Сообщения отправляют явную трансляцию в пакет с указанным названием при возникновении события сообщения.

Уведомление в приложении для архивирования

  • Явная трансляция отправляется в указанное приложение для архивации с действием: GOOGLE_MESSAGES_ARCHIVAL_UPDATE
  • В некоторых случаях URI сообщения включается в дополнительные данные трансляции, которые можно использовать для получения сообщения, запустившего трансляцию: com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI

Требования к архивируемым приложениям

Обязательно.

  • Запросите разрешение FOREGROUND_SERVICE.
  • Объявите активную службу в манифесте, который включает фильтр интентов для трансляции обновления архива и разрешение, гарантирующее, что только Google Сообщения могут запустить службу.
<service
        android:enabled="true"
        android:foregroundServiceType="shortService"
        android:name=".TestService"
        android:exported="true"
        android:permission="android.permission.WRITE_SMS">
      <intent-filter>
        <action android:name="GOOGLE_MESSAGES_ARCHIVAL_UPDATE" />
      </intent-filter>
</service>
  • Реализуйте этот сервис, чтобы обрабатывать намерение, считывать данные из телефонии и определять тип события сообщения, сравнивая предыдущее состояние телефонии с текущим. Затем кешируйте событие сообщения, которое нужно загрузить в серверную часть сервиса архивирования, и обновленное состояние телефонии, чтобы сравнить его со следующим событием.

Рекомендуется:

  • Пакетные обновления событий сообщений на сервере с помощью JobScheduler.

    • Системные администраторы могут гарантировать, что ваше приложение не будет закрыто, а его данные не будут удалены пользователями. Это позволит обеспечить ожидаемое выполнение пакетных обновлений.
    • Минимизация времени работы активной службы до критически необходимого для архивации минимума сводит к минимуму влияние на UX и работоспособность системы.
  • Включите программную настройку приложения с помощью MCM (как описано в схеме MCM для Сообщений), чтобы пользователям не нужно было входить в систему или вручную указывать сведения о регистрации сервера.

Тестирование

Чтобы протестировать реализацию, используйте TestDPC или предпочитаемый клиент EMM.