Come integrare GCM con Mobile Engagement

Importante

Prima di usare questa guida, è necessario eseguire la procedura di integrazione descritta nel documento relativo all'integrazione di Engagement in Android.

Il documento è utile solo se è già stato integrato il modulo di copertura e si intende eseguire il push dei dispositivi Google Play. Per integrare le campagne Reach nell'applicazione, leggere prima l'articolo relativo all'integrazione del servizio Reach di Engagement in Android.

Introduzione

L'integrazione di GCM consente il push dell'applicazione.

I payload GCM di cui viene eseguito il push sull’SDK contengono sempre la chiave azme nell'oggetto dati. Pertanto se si usa GCM per uno scopo diverso nell'applicazione, è possibile filtrare le notifiche push in base a tale chiave.

Importante

Solo i dispositivi che eseguono Android 2.2 o versioni successive, con Google Play installato e con la connessione a Google in background abilitata, possono essere riattivati da GCM. È comunque possibile integrare questo codice in modo sicuro in dispositivi non supportati (usa solo elementi di tipo Intent).

Creare un progetto Google Cloud Messaging con chiave API

Creare un progetto Google Firebase con chiave API

Nota

Per completare questa procedura, è necessario disporre di un account Google con un indirizzo di posta elettronica verificato. Per creare un nuovo account Google, visitare il sito Web all'indirizzo accounts.google.com.

  1. Passare alla console di Firebase ed eseguire l'accesso con le credenziali dell'account Google.
  2. Fare clic sul pulsante Create new Project (Crea nuovo progetto) per creare un nuovo progetto. In alternativa, è possibile fare clic su Import Google Project (Importa progetto di Google) per importare un progetto esistente.
  3. Se si è scelto di creare un nuovo progetto, specificare un nome progetto e scegliere un paese/area geografica.
  4. Nella pagina del progetto fare clic sull'ingranaggio delle impostazioni nell'angolo superiore sinistro. Nel menu fare clic su Project settings (Impostazioni del progetto).
  5. Fare clic sulla scheda Cloud Messaging in alto.
  6. Prendere nota dei valori di Server Key (Chiave server) e Sender ID (ID mittente), che verranno usati più avanti nel file manifesto Android.

Integrazione dell'SDK

Gestione delle registrazioni dei dispositivi

Ogni dispositivo deve inviare un comando di registrazione ai server Google; in caso contrario non sarà raggiungibile.

Un dispositivo può anche annullare la registrazione alle notifiche GCM (la registrazione del dispositivo viene annullata automaticamente se l'applicazione viene disinstallata).

Se non si usa Google Play SDK oppure se l'Intent di registrazione non viene inviato manualmente, è possibile fare in modo che Engagement registri automaticamente il dispositivo.

Per abilitare questa funzionalità, aggiungere il codice seguente nel file AndroidManifest.xml, all'interno del tag <application/>:

        <!-- If only 1 sender, don't forget the \n, otherwise it will be parsed as a negative number... -->
        <meta-data android:name="engagement:gcm:sender" android:value="<Your Google Project Number>\n" />

Comunicare l'ID di registrazione al servizio push di Engagement e ricevere le notifiche

Per comunicare l'ID di registrazione del dispositivo al servizio push di Engagement e ricevere le relative notifiche, aggiungere quanto segue al file AndroidManifest.xml, all'interno del tag <application/> (anche se si gestiscono autonomamente le registrazioni dei dispositivi):

        <receiver android:name="com.microsoft.azure.engagement.gcm.EngagementGCMEnabler"
          android:exported="false">
          <intent-filter>
            <action android:name="com.microsoft.azure.engagement.intent.action.APPID_GOT" />
          </intent-filter>
        </receiver>

        <receiver android:name="com.microsoft.azure.engagement.gcm.EngagementGCMReceiver" android:permission="com.google.android.c2dm.permission.SEND">
          <intent-filter>
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="<your_package_name>" />
          </intent-filter>
        </receiver>

Assicurarsi di avere le seguenti autorizzazioni nel file AndroidManifest.xml (dopo il tag </application>).

        <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
        <uses-permission android:name="<your_package_name>.permission.C2D_MESSAGE" />
        <permission android:name="<your_package_name>.permission.C2D_MESSAGE" android:protectionLevel="signature" />

Concedere a Mobile Engagement l'accesso alla chiave API GCM

Seguire questa guida per concedere a Mobile Engagement l'accesso alla chiave API GCM.