Archivado de Mensajes de Google con RCS

Información general

En este documento, se describe cómo integrar, probar y validar la función de archivado de RCS en Mensajes de Google.

Descripción general de la solución

  • Archivado del cliente: Los proveedores de archivado deben desarrollar una app para Android que los administradores de TI puedan implementar en sus dispositivos administrados.
  • Con tecnología de Mensajes de Google: Esta función requiere que Mensajes de Google sea la app de mensajería predeterminada. Los administradores de TI pueden usar los controles de Android Enterprise para aplicar la configuración predeterminada.
  • Requiere Android Enterprise: Esta función solo está disponible en dispositivos completamente administrados.

Flujo de trabajo

Flujo de trabajo para el archivado de mensajes RCS
Figura 1: Flujo de trabajo de archivado de RCS.
  1. El administrador de TI implementa la app de archivo con Android Enterprise.
  2. Opcional: El administrador de TI configura de forma programática la app de archivo con los controles de Android Enterprise.
    • Obligatorio:
      • La app de archivo necesita el permiso READ_SMS
    • Recomendado:
      • Inhabilitar el control del usuario sobre la app de Mensajes de Google y la app de archivo
      • El administrador de TI aplica Mensajes de Google como cliente predeterminado de SMS o RCS
      • De manera opcional, el administrador de TI también puede inscribir previamente la app de archivo con MCM si la solución de archivo admite MCM.
  3. El administrador de TI habilita el archivado en Mensajes de Google con MCM.
  4. Mensajes de Google escribe datos de mensajes en Android en eventos de mensajes. Un evento de mensaje es uno de los siguientes: mensaje enviado, mensaje recibido, mensaje editado o mensaje borrado.
  5. Mensajes de Google notifica a la app de archivo sobre el evento de mensaje nuevo, tanto para los mensajes RCS como para los SMS/MMS.
  6. La app de archivo lee los datos del mensaje del proveedor de Telephony.
  7. La app de archivo agrupa las actualizaciones y las envía al servidor.

Implementación

Esquema de MCM de Mensajes de Google

El archivado se configura en Mensajes de Google con la clave messages_archival, que acepta un valor de cadena para que los administradores especifiquen su app de archivo por nombre de paquete. Si el valor está vacío, es nulo o la clave no está presente, se inhabilita el archivo. Si se especifica el valor, se habilita el archivo y Mensajes de Google envía una transmisión explícita al nombre del paquete especificado en un evento de mensaje.

Notificación a la app de archivo

  • Se envía una transmisión explícita a la app de archivo especificada, con la acción: GOOGLE_MESSAGES_ARCHIVAL_UPDATE
  • En algunos casos, el URI del mensaje se incluye en los elementos adicionales de la transmisión, que se pueden usar para recuperar el mensaje que activó la transmisión: com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI

Requisitos para archivar apps

Obligatorio:

  • Reclama el permiso FOREGROUND_SERVICE.
  • Declara un servicio en primer plano en tu manifiesto, que incluya el filtro de intents para la transmisión de actualización de archivo y que tenga permiso otorgado para garantizar que solo Mensajes de Google pueda iniciar el servicio.
<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>
  • Implementa ese servicio para controlar el intent, leer desde la telefonía y determinar el tipo de evento de mensaje comparando el estado anterior de la telefonía con el estado actual. Luego, almacena en caché el evento de mensaje que se subirá al backend del servicio de archivo y el estado actualizado de la telefonía para compararlo con el siguiente evento.

Recomendado:

  • Actualizaciones por lotes de eventos de mensajes al servidor con JobScheduler.

    • Los administradores de TI pueden garantizar que los usuarios no cierren tu app ni borren sus datos, lo que asegura que las actualizaciones por lotes se realicen según lo previsto.
    • Minimizar el tiempo de servicio en primer plano solo al requisito de archivo crítico minimiza el impacto en la UX y el estado del sistema.
  • Habilita la configuración programática de tu app con MCM (como se menciona en el esquema de MCM de Messages), de modo que los usuarios no necesiten acceder ni especificar los detalles de inscripción del servidor de forma manual.

Prueba

Para probar tu implementación, usa TestDPC o tu cliente de EMM preferido.