Saltar al contenido

Notificaciones push con mensajes en la nube de la base de fuego

A continuación, sigue adelante y crea esos dos servicios de clase Java que declaraste en el manifiesto en un nuevo paquete llamado notificaciones.

Esta es la implementación de la clase de servicio de sustancias MyFirebaseInstanceIDS:

Notificaciones push con mensajes en la nube de la base de fuego
Notificaciones push con mensajes en la nube de la base de fuego
123456789101112131415161718192021importación.de.contenido.de.la.base.de.incendio.compartido;importación.de.preferencia.de.la.base.de.incendio.de.iid;servicio.de.importación.de.la.base.de.incendio.de.iid;importación.de.la.base.de.incendio.de.iid;servicio.de.importación.de.iid. centroida.notifications.Constants;publicclassMyFirebaseInstanceIDServiceextendsFirebaseInstanceIdService{privatestaticfinalString TAG ="MyFirebaseIIDService";@OverridepublicvoidonTokenRefresh(){// Obtener el token InstanceID actualizado. String refreshedToken =FirebaseInstanceId.getInstance().getToken();Log.d(TAG, "Refreshed token: "+ refreshedToken);// Si quieres enviar mensajes a esta instancia de la aplicación o// administrar las suscripciones de esta aplicación en el lado del servidor, envía el/// token de Instance ID al servidor de la aplicación. Preferencias compartidas =PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); preferences.edit().putString(Constants.FIREBASE_TOKEN, refreshedToken).apply();}}

java

El propósito de este servicio es muy simple:

Obtiene un Token de la Base de Fuego, forjando así la conexión entre el dispositivo y la Base de Fuego. A través de este token, puede enviar notificaciones a este dispositivo específico. Cuando se obtiene, este token se guarda en una preferencia compartida para su uso futuro. Naturalmente, le gustaría enviarlo a su servidor en algún momento, por ejemplo, en el registro de usuario, o incluso de inmediato, para que el servidor pueda enviar las notificaciones de este dispositivo a través de la Firebase.

Pasando a la clase más interesante, a saber, MyFirebaseMessagingService.

123456publicclassMyFirebaseMessagingServiceextendsFirebaseMessagingService{@OverridepublicvoidonMessageReceived(RemoteMessage remoteMessage){}}

java

Este servicio necesita extender el servicio de mensajes de la base de fuego. Cuando el dispositivo objetivo recibe una notificación, se llama a onMessageReceived. En sus manos, ya tiene el objeto remoteMessage, que contiene toda la información que ha recibido sobre la notificación. Ahora vamos a crear una notificación real con esa información.

12345678910111213141516171819202122232425@OverridepublicvoidonMessageReceived(RemoteMessage remoteMessage){ notificationManager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);//Setting up Notification channels for android O and aboveif(android.os.Build. VERSION.SDK_INT;= android.os.Build.VERSION_CODES.O){setupChannels();}int notificationId =newRandom().nextInt(60000);Uri defaultSoundUri =RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);NotificationCompat.Builder notificationBuilder =newNotificationCompat. Builder(this, ADMIN_CHANNEL_ID).setSmallIcon(R.drawable.ic_notification_small)//a resource for your custom small icon.setContentTitle(remoteMessage.getData().get("title"))//el valor de "título" que envió en su notificación.setContentText(remoteMessage.getData().get("message"))//ditto. setAutoCancel(true)//dispara la notificación en click.setSound(defaultSoundUri);NotificationManager notificationManager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(notificationId /* ID de la notificación */, notificationBuilder.build());}

java

En este caso, para obtener notificaciones únicas cada vez que se recibe un nuevo mensaje, por el bien de este ejemplo, generamos un número aleatorio y lo utilizamos como identificación de la notificación. Con esta identificación, puedes hacer varias cosas con tus notificaciones. Como tal, probablemente deberías agruparlas si son del mismo tipo, o actualizarlas. Si desea ver cada notificación individualmente de las demás, sus ID deben ser diferentes.