Módulo responsable de entregar y exhibir notificaciones comuns, con imágenes o carrossel de imágenes, segmentadas en la aplicación.
Antes de empezar
Para integrar el módulo de notificaciones de MDM, la aplicación debe tener push notifications con Firebase integrado.
Si no dispone de push notifications de Firebase integrado a su aplicación, siga las instrucciones en https://firebase.google.com/docs/
Si desea diferenciar una notificación originada desde MDM o una notificación que usted posea:
if (MDMNotification.isMDMNotification(remoteMessage.getData())) {
MDMNotification.processNotification(remoteMessage.getData(), getApplicationContext());
} else {
// Mi Notificacion
}
Agregue lo siguiente servicio a su manifiesto, dentro de la etiqueta Application:
<service
android:name="br.com.hands.mdm.libs.android.notification.services.MDMMessagingService"
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
¿Tiene sus propias clases ampliando las clases de Firebase y no quiere implementar los servicios mencionados anteriormente?
Sigue las instrucciones a continuación:
1. Para registrar el token proporcionado por Firebase, agregue el siguiente código a la sobrecarga del método onNewToken en la clase que extiende FirebaseMessagingService:
MDMNotification.registerToken(newToken, getApplicationContext());
2. Para recibir MDM push, agregue el siguiente código a la sobrecarga del método onMessageReceived en la clase que extiende FirebaseMessagingService:
if (MDMNotification.isMDMNotification(remoteMessage.getData())) {
MDMNotification.processNotification(remoteMessage.getData(), getApplicationContext());
}
Implementación específica:
- Notificación Push
Para la implementación del formato de notificación push, no se necesita nada más.
- Inbox
Para la implementación del formato de Inbox, agregue el siguiente código para cuando desee mostrar el contenido:
startActivity(new Intent(getApplicationContext(), MDMInboxActivity.class));
Para personalizar el texto de la barra de título, agregue el siguiente código a su application:
MDMInbox.setTitle("Inbox");
Para personalizar el color de la barra de título, agregue el siguiente código a su application:
MDMInbox.setStatusBarColor("#96221B");
MDMInbox.setToolBarColor("#B3342F");
- InApp Message
Para la implementación del formato InApp, agregue el siguiente código a su application.
MDMInApp.start(getApplicationContext());
Integración con Firebase
Para enviar notificaciones push a través del servicio de Firebase, necesitamos un archivo llamado Service Account Key. Para obtener este archivo, debe seguir los pasos a continuación:
NOTA: Al acceder a los enlaces a continuación, asegúrese de que el proyecto seleccionado en la parte superior de la página sea el mismo proyecto que su aplicación en Firebase.
1. Cree un Role específico para enviar notificaciones push
Vaya a la siguiente dirección: https://console.developers.google.com/iam-admin/roles
Empiece a crear un Role y asígnele el nombre «Hands MDM».
Agregue los siguientes permisos:
cloudmessaging.messages.create
Permiso para enviar notificaciones y mensajes de datos a través de FCM HTTP API y AdminSDK
resourcemanager.projects.get
resourcemanager.projects.getIamPolicy
Permiso para recuperar información del proyecto de Firebase
Guardar para finalizar el proceso.
2. Cree una cuenta de servicio con el rol creado anteriormente
Vaya a la siguiente dirección: https://console.cloud.google.com/iam-admin/serviceaccounts
Empiece a crear una cuenta de servicio y asígnele el nombre «Hands MDM».
Continúe con el siguiente paso y asigne el rol creado anteriormente.
Omita el último paso y guarde para finalizar el proceso.
3. Incluya una clave en la cuenta de servicio y obtenga el archivo
Después de guardar, verá una lista de todas las cuentas de servicio. Seleccione la cuenta de servicio creada con el nombre «Hands MDM» para editar.
Agregue una nueva clave en formato JSON.
Al agregar la clave, se descargará un archivo automáticamente.