Come integrare ADM con Mobile EngagementHow to Integrate ADM with Engagement

Importante

Prima di usare questa guida, è necessario eseguire la procedura di integrazione descritta nel documento relativo all'integrazione di Engagement in Android.You must follow the integration procedure described in the How to Integrate Engagement on Android document before following this guide.

Il documento è utile solo se è già stato integrato il modulo di copertura e si intende eseguire il push dei dispositivi Amazon.This document is useful only if you already integrated the Reach module and plan to push Amazon devices. Per integrare le campagne Reach nell'applicazione, leggere prima l'articolo relativo all'integrazione del servizio Reach di Engagement in Android.To integrate Reach campaigns in your application, please read first How to Integrate Engagement Reach on Android.

IntroduzioneIntroduction

L'integrazione di ADM consente il push dell'applicazione quando è destinata a dispositivi Android Amazon.Integrating ADM allows your application to be pushed when targeting Amazon Android devices.

I payload ADM di cui viene eseguito il push sull’SDK contengono sempre la chiave azme nell'oggetto dati.ADM payloads pushed to the SDK always contain the azme key in the data object. Pertanto se si usa ADM per uno scopo diverso nell'applicazione, è possibile filtrare le notifiche push in base a tale chiave.Thus if you use ADM for another purpose in your application, you can filter pushes based on that key.

Importante

Solo i dispositivi Amazon Kindle che eseguono Android 4.0.3 o versioni successive sono supportati da Amazon Device Messaging. È comunque possibile integrare questo codice in modo sicuro in altri dispositivi.Only Amazon Kindle devices running Android 4.0.3 or above are supported by Amazon Device Messaging; however, you can integrate this code safely on other devices.

Iscriversi ad ADMSign up to ADM

Se questa operazione non è già stata eseguita, è necessario abilitare ADM nel proprio account Amazon.If not already done, you must enable ADM on your Amazon account.

La procedura è descritta in dettaglio all'indirizzo: [https://developer.amazon.com/sdk/adm/credentials.html].The procedure is detailed at: [https://developer.amazon.com/sdk/adm/credentials.html].

Dopo aver completato la procedura, si ottiene quanto segue:Upon completing the procedure, you get:

  • Le credenziali OAuth (ID e segreto client) che consentono a Engagement di eseguire il push dei dispositivi.OAuth credentials (a Client ID and a Client Secret) for Engagement to be able to push your devices.
  • Una chiave API che deve essere integrata nell'applicazione.An API Key that must be integrated into your application.

Integrazione dell'SDKSDK integration

Gestione delle registrazioni dei dispositiviManaging device registrations

Ogni dispositivo deve inviare un comando di registrazione ai server ADM; in caso contrario non saranno raggiungibili.Each device must send a registration command to the ADM servers, otherwise they can't be reached.

Se si usa già la libreria client ADM e si è già integrato ADM, è possibile passare direttamente ad android-sdk-adm-receive.If you already use the [ADM client library], and already have [integrated ADM] you can directly go to android-sdk-adm-receive.

Se ADM non è stato ancora integrato, Engagement offre un modo più semplice per abilitarlo nell'applicazione:If you have not integrated ADM yet, Engagement has a simpler way to enable it in your application:

Modificare il file AndroidManifest.xml:Edit your AndroidManifest.xml file:

  • Aggiungere lo spazio dei nomi Amazon. Il file deve iniziare nel modo seguente:Add the Amazon namespace, the file should begin like this:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:amazon="http://schemas.amazon.com/apk/res/android"
    
  • All'interno del tag <application/> aggiungere questa sezione:Inside the <application/> tag, add this section:

    <amazon:enable-feature
       android:name="com.amazon.device.messaging"
       android:required="false"/>
    
    <meta-data android:name="engagement:adm:register" android:value="true" />
    
  • Dopo aver aggiunto il tag di Amazon, può verificarsi un errore di compilazione se come destinazione di compilazione del progetto è impostata una versione precedente Android 2.1.After adding the amazon tag, you may have a build error if your Project Build Target is below Android 2.1. È necessario usare una destinazione di compilazione Android 2.1 o versione successiva, anche se è ancora possibile avere una proprietà minSdkVersion impostata su 4.You have to use an Android 2.1+ build target (don't worry, you can still have a minSdkVersion set to 4).
  • Integrare la chiave API di ADM come asset seguendo questa procedura.Integrate the ADM API Key as an asset by following [this procedure].

Seguire quindi le istruzioni riportate nelle sezioni successive.Then follow the instructions of the next sections.

Comunicare l'ID di registrazione al servizio push di Engagement e ricevere le notificheCommunicate registration id to the Engagement Push service and receive notifications

Per comunicare l'ID di registrazione del dispositivo al servizio push di Engagement e ricevere le notifiche, aggiungere quanto segue al file AndroidManifest.xml, all'interno del tag <application/> (anche se si usa ADM senza Engagement):In order to communicate the registration id of the device to the Engagement Push service and receive its notifications, add the following to your AndroidManifest.xml file, inside the <application/> tag (even if you use ADM without Engagement):

    <receiver android:name="com.microsoft.azure.engagement.adm.EngagementADMEnabler"
      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.adm.EngagementADMReceiver"
       android:permission="com.amazon.device.messaging.permission.SEND">
      <intent-filter>
        <action android:name="com.amazon.device.messaging.intent.REGISTRATION"/>
        <action android:name="com.amazon.device.messaging.intent.RECEIVE"/>
        <category android:name="<your_package_name>"/>
      </intent-filter>
    </receiver>   

Assicurarsi di avere le seguenti autorizzazioni nel file AndroidManifest.xml (prima del tag </application>).Ensure you have the following permissions in your AndroidManifest.xml (before the </application> tag).

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="com.amazon.device.messaging.permission.RECEIVE"/>
    <uses-permission android:name="<your_package_name>.permission.RECEIVE_ADM_MESSAGE"/>
    <permission android:name="<your_package_name>.permission.RECEIVE_ADM_MESSAGE" android:protectionLevel="signature"/>

Concedere le credenziali OAuth di EngagementGrant Engagement OAuth credentials

Inviare le credenziali OAuth (ID client e Segreto client) al portale di Engagement.Submit your OAuth Credentials (Client ID and Client Secret) in Engagement Portal.