Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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
Figura 1: Flujo de trabajo de archivado de RCS.
El administrador de TI implementa la app de archivo con Android Enterprise.
Opcional: El administrador de TI configura de forma programática la app de archivo con los controles de Android Enterprise.
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.
El administrador de TI habilita el archivado en Mensajes de Google con MCM.
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.
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.
La app de archivo lee los datos del mensaje del proveedor de Telephony.
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
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.
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.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[null,null,["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# RCS Google Messages archival\n\nBackground\n----------\n\nThis document outlines how to integrate with, test, and validate the RCS\narchival feature in Google Messages.\n\n### Solution overview\n\n- **Client-side archival:** Archival vendors need to develop an Android app for IT admins to deploy on their managed devices.\n- **Powered by Google Messages:** This feature requires Google Messages to be the [default messaging app](https://support.google.com/messages/answer/6089066). IT admins can use Android Enterprise controls to enforce the default.\n- **Requires Android Enterprise:** This feature is available only on fully managed devices.\n\n| **Important:** Work profiles (on neither personally-owned nor company-owned devices) are not supported.\n\n### Workflow\n\n**Figure 1.** RCS archival workflow.\n\n1. IT admin deploys archival app using Android Enterprise.\n2. **Optional** : IT admin programmatically configures archival app using Android Enterprise controls.\n - Required:\n - The archival app needs [`READ_SMS`](/reference/android/Manifest.permission#READ_SMS) permission\n - Recommended:\n - [Disallow user control](/reference/android/app/admin/DevicePolicyManager#setUserControlDisabledPackages(android.content.ComponentName,%20java.util.List%3Cjava.lang.String%3E)) over Google Messages and archival app\n - IT admin [enforces](/reference/android/os/UserManager?_gl=1*wrcrs6*_up*MQ..*_ga*MTgxMTgzNzc3NC4xNzM4NjY5MDMy*_ga_6HH9YJMN9M*MTczODY2OTAzMS4xLjAuMTczODY2OTAzMS4wLjAuMTQ0OTczNTMyMg..#DISALLOW_CONFIG_DEFAULT_APPS) Google Messages as the default SMS/RCS client\n - Optionally, IT admin can pre-enroll archival app using MCM as well, if archival solution supports MCM\n3. IT admin enables archival in Google Messages using [MCM](#google-messages-mcm-schema).\n4. Google Messages writes message data to Android on message events. A message event is one of: message sent, message received, message edited, or message deleted.\n5. Google Messages [notifies archival app](#notification-to-archival-app) of new message event, for both RCS and SMS/MMS messages.\n6. The archival app reads the message data from the [`Telephony`](/reference/android/provider/Telephony) provider.\n7. The archival app batches updates and sends them to the server.\n\nImplementation\n--------------\n\n### Google Messages MCM schema\n\nArchival is configured in Google Messages using the `messages_archival` key,\nwhich accepts a string value for admins to specify their archival app by package\nname. If the value is empty, null, or the key is not present, archival is\ndisabled. If the value is specified, archival is enabled, and Google Messages\nsends an explicit broadcast to the specified package name on a message event.\n\n### Notification to archival app\n\n- An explicit broadcast is sent to the specified archial app, with the action: `GOOGLE_MESSAGES_ARCHIVAL_UPDATE`\n- In some cases, the message URI is included in the broadcast extras, which can be used to fetch the message that triggered the broadcast: `com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI`\n\n### Archival app requirements\n\n**Required:**\n\n- Claim the [FOREGROUND_SERVICE permission](/reference/android/Manifest.permission?_gl=1*ir8law*_up*MQ..*_ga*NDcyNDIyNTk3LjE3NDAzOTEzODM.*_ga_6HH9YJMN9M*MTc0MDM5MTM4My4xLjAuMTc0MDM5MTM4My4wLjAuMTM5NTk3NjU1Nw..#FOREGROUND_SERVICE).\n- Declare a foreground service in your manifest, which includes the intent filter for the archival update broadcast, and is [permission-granted](/privacy-and-security/risks/access-control-to-exported-components#permission-based-access-control-to-exported-components-mitigations) to assure only Google Messages can start the service.\n\n \u003cservice\n android:enabled=\"true\"\n android:foregroundServiceType=\"shortService\"\n android:name=\".TestService\"\n android:exported=\"true\"\n android:permission=\"android.permission.WRITE_SMS\"\u003e\n \u003cintent-filter\u003e\n \u003caction android:name=\"GOOGLE_MESSAGES_ARCHIVAL_UPDATE\" /\u003e\n \u003c/intent-filter\u003e\n \u003c/service\u003e\n\n- Implement that service to handle the intent, read from telephony, and determine the type of the message event by comparing the prior state of telephony with the current state, and then cache both the message event to be uploaded to the archival service backend, and the updated state of Telephony to compare against on the next event.\n\n**Recommended:**\n\n- Batch updates of message events to the server with [`JobScheduler`](/reference/android/app/job/JobScheduler).\n\n | **Important:** Don't attempt to sync every message event with your backend in your service.\n - IT admins can guarantee your app isn't killed or your app data deleted by users, making sure your batched updates can proceed as expected.\n - Minimizing foreground service time to just the critical archival requirement minimizes UX and system health impact.\n- Enable programmatic configuration of your app using MCM (as mentioned in\n [Messages MCM schema](#google-messages-mcm-schema)), so users don't need to sign in or specify server\n enrollment details manually.\n\nTesting\n-------\n\nTo test your implementation, use [TestDPC](https://github.com/googlesamples/android-testdpc) or your preferred EMM\nclient."]]