logo indigitall
/Integración indigitall /Push app /Android
EN

 | ES

Integración Android

Guía rápida de integración del SDK de Android.


Tabla de contenidos



¿Qué necesitas para la integración?



Integración


Este artículo muestra el desarrollo mínimo que hay que hacer para comenzar a registrar dispositivos y poder realizar las primeras campañas push.


Puedes verlo en ente vídeo tutorial o leer las instrucciones más abajo:



Añadiendo las dependencias del SDK


Lo primero que hay que hacer es abrir el fichero app/build.gradle. En la captura de pantalla se puede comprobar dónde encontrar este fichero app/build.gradle.

Atención: es el fichero build.gradle que se encuentra en la carpeta app, NO el de la raíz del proyecto.


Gradle build file

La librería está disponible a través del repositorio Maven Central. Maven es una de las herramientas de gestión de librerias más usadas en Android. Para integrar el SDK de indigitall es necesario añadir las siguientes d3pendencias:


android {
    compileSdkVersion 28
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 28
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.google.firebase:firebase-messaging:18.0.0'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    implementation 'com.indigitall:android:3.1.+'
}


Configuración de AndroidManifest.xml


En el fichero AndroidManifest.XML hay que añadir la configuración para:


Añadiendo los servicios de Firebase


Nuestro SDK necesita integrarse con tu proyecto de FCM (Firebase Cloud Messaging).

FCM realiza la conexión con el dispositivo para poder enviarle notificaciones push. Esta conexión se establece con el Push Token, un token efímero, único y generado por Google para cada dispositivo.


<service android:name="com.indigitall.android.services.FirebaseMessagingService">
   <intent-filter>
       <action android:name="com.google.firebase.MESSAGING_EVENT" />
   </intent-filter>
</service>

<service android:name="com.indigitall.android.services.FirebaseInstanceIdService">
   <intent-filter>
       <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
   </intent-filter>
</service>


Añadiendo los servicios de indigitall


Estos servicios son necesarios para que nuestro SDK pueda sincronizar los datos del dispositivo con los servidores de indigitall.


<!-- OBLIGATORIOS -->

<!-- Para que cuando el usuario pulse una push, se guarde la métrica -->
<service android:name="com.indigitall.android.services.StatisticService">

<!-- Sincronización diaria de los datos del dispositivo -->
<service android:name="com.indigitall.android.services.NightService">

<!-- Para iniciar los servicios cuando reinicias el dispositivo -->
<receiver android:name="com.indigitall.android.receivers.BootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

<!-- OPCIONALES -->

<!-- Para que cuando el usuario pulse un mensaje InApp, se guarde la métrica.
Solo es necesario si usas la funcionalidad de mensajes InApp -->
<service android:name="com.indigitall.inapp.services.StatisticInAppService" />

<!-- Para obtener la localización del dispositivo.
Solo es necesario si vas a pedir permiso de localización
para segmentar las pushes por la ubicación del dispositivo -->
<receiver android:name="com.indigitall.android.receivers.LocationReceiver">
    <intent-filter>
        <action android:name="LocationReceiver.Action.LOCATION_UPDATE" />
    </intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


Estableciendo el icono de las notificaciones


Este icono se mostrará en la barra superior del sistema Android y en la cabecera de las pushes enviadas a través de tu app.

Debe ser un icono monocromo, es decir, que la imagen debe contener solo un color y alfa.

Te ponemos un ejemplo con nuestro logo:


New tag

<!-- Recurso para el icono monocromo -->
<meta-data android:name="indigitall.icon" android:resource="@drawable/ic_slept_very_good_unselected"/>

<!-- Recurso para el color del icono -->
<meta-data android:name="indigitall.color" android:resource="@color/colorPrimary"/>


Inicializar el SDK


Para inicializar el SDK es necesario llamar al método init. Esta llamada ha de producirse dentro del objeto Application.

La clase Application del SDK de Android es la clase base contenedora, y es lo primero que se ejecuta al abrir la aplicación. Por lo tanto, es necesario que nuestra aplicación tenga una clase personalizada que extienda de la clase Application.

Dentro de esta clase, en el método onCreate, debemos añadir las siguientes líneas de código:


Indigitall.init(this, "<your_indigitall_app_key>", "<your_firebase_sender_id")



No olvides añadir el nombre de tu clase Application en el manifest AndroidManifest.xml:


<application android:name=".application.App">


Validar la integración


Para comprobar que la integración se ha realizado correctamente realiza lo siguiente:


  1. Desde Android Studio, ves a la pestaña Logcat y busca la llamada PUT /device conteniendo los parámetros appKey, deviceId y pushToken y que devuelva HTTP 200.




  1. Envia una notificación desde la consola de indigitall. Es posible que en la consola el contador de dispositivos aparezca a 0. No te preocupes, puede tardar unos minutos en actualizarse, pero no hace falta que esperes, la push debería llegar igualmente.




Siguientes pasos