Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Sfondo
Questo documento descrive come eseguire l'integrazione, il test e la convalida della funzionalità di archiviazione RCS in Google Messaggi.
Panoramica della soluzione
Archiviazione lato client:i fornitori di archiviazione devono sviluppare un'app Android da implementare sui dispositivi gestiti dagli amministratori IT.
Con tecnologia Google Messaggi:questa funzionalità richiede che Google Messaggi sia
l'app di messaggistica predefinita. Gli amministratori IT possono utilizzare i controlli Android Enterprise
per applicare l'impostazione predefinita.
Richiede Android Enterprise:questa funzionalità è disponibile solo sui dispositivi completamente gestiti.
Flusso di lavoro
Figura 1. Flusso di lavoro di archiviazione RCS.
L'amministratore IT esegue il deployment dell'app di archiviazione utilizzando Android Enterprise.
(Facoltativo): l'amministratore IT configura l'app di archiviazione a livello di programmazione utilizzando
i controlli Android Enterprise.
Obbligatorio:
L'app di archiviazione richiede l'autorizzazione READ_SMS
L'amministratore IT impone Google Messaggi come client SMS/RCS predefinito
Facoltativamente, l'amministratore IT può pre-registrare anche l'app di archiviazione utilizzando MCM, se
la soluzione di archiviazione supporta MCM
L'amministratore IT attiva l'archiviazione in Google Messaggi utilizzando MCM.
Messaggi di Google scrive i dati dei messaggi su Android in base agli eventi dei messaggi.
Un evento di messaggio è uno dei seguenti: messaggio inviato, messaggio ricevuto, messaggio modificato o
messaggio eliminato.
L'app di archiviazione legge i dati dei messaggi dal provider Telephony.
L'app di archiviazione raggruppa gli aggiornamenti e li invia al server.
Implementazione
Schema MCM di Google Messaggi
L'archiviazione viene configurata in Google Messaggi utilizzando la chiave messages_archival,
che accetta un valore stringa per consentire agli amministratori di specificare l'app di archiviazione in base al nome del pacchetto. Se il valore è vuoto, nullo o la chiave non è presente, l'archiviazione è
disattivata. Se il valore è specificato, l'archiviazione è abilitata e Google Messaggi
invia una trasmissione esplicita al nome del pacchetto specificato in un evento di messaggio.
Notifica all'app di archiviazione
Viene inviato un intent esplicito all'app di archiviazione specificata, con l'azione:
GOOGLE_MESSAGES_ARCHIVAL_UPDATE
In alcuni casi, l'URI del messaggio è incluso negli extra della trasmissione, che possono
essere utilizzati per recuperare il messaggio che ha attivato la trasmissione:
com.google.android.apps.messaging.EXTRA_ARCHIVAL_URI
Dichiara un servizio in primo piano nel manifest, che include il filtro
intent per la trasmissione dell'aggiornamento dell'archiviazione ed è autorizzato per
garantire che solo Google Messaggi possa avviare il servizio.
Implementa questo servizio per gestire l'intent, leggere dalla telefonia e
determinare il tipo di evento del messaggio confrontando lo stato precedente della
telefonia con lo stato attuale, quindi memorizza nella cache sia l'evento del messaggio da
caricare nel backend del servizio di archiviazione sia lo stato aggiornato della telefonia da
confrontare con l'evento successivo.
Consigliato:
Aggiornamenti batch degli eventi di messaggistica al server con JobScheduler.
Gli amministratori IT possono garantire che l'app non venga chiusa o che i dati dell'app non vengano eliminati dagli
utenti, assicurandosi che gli aggiornamenti batch possano procedere come previsto.
Ridurre al minimo il tempo di servizio in primo piano al solo requisito di archiviazione critico
riduce al minimo l'impatto sull'esperienza utente e sull'integrità del sistema.
Attiva la configurazione programmatica della tua app utilizzando MCM (come indicato nello
schema MCM di Messaggi), in modo che gli utenti non debbano accedere o specificare manualmente i dettagli di registrazione del server.
Test
Per testare l'implementazione, utilizza TestDPC o il client EMM che preferisci.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[null,null,["Ultimo aggiornamento 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."]]