Intent intent = new Intent(this, ListaLugares.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
// Construir notificación
Notification n = new NotificationCompat.Builder(this)
.setContentTitle("Lista de lugares actualizada")
.setContentText("Ver lista de lugares")
.setSmallIcon(R.drawable.ic_launcher)
.setContentIntent(pIntent)
.setAutoCancel(true)
.build();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
// Preparar el Intent de la notificación
Intent intent = new Intent(this, ListaLugares.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
// Construir notificación
Notification n = new NotificationCompat.Builder(this)
.setStyle(
new NotificationCompat.InboxStyle()
.addLine("Se ha actualizado la lista de lugares porque agregaron mucnos más").addLine("Esta es una línea de prueba"))
.setContentTitle("Lista de lugares actualizada")
.setSmallIcon(R.drawable.ic_launcher).setContentIntent(pIntent)
.setAutoCancel(true).build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
Al generar una notificación, se utiliza un identificador único.
Este identificador se puede utilizar para actualizar la notificación, si ésta es visible.
La aplicación debe ser capaz de recibir ofertas relacionadas con lugares específicos.
Estas ofertas deben llegar, incluso cuando el usuario está por fuera de la aplicación.
Servicio de mensajería instantánea de Google en la nube.
Permite la comunicación entre un servidor y dispositivos móviles, en ambos sentidos.
Nosotros usaremos GCM para enviar mensajes de un servidor a varios dispositivos móviles.
Se crea un proyecto en la consola de desarrolladores de Google, que tendrá identificadores únicos.
Se registran los dispositivos móviles que tengan la aplicación instalada.
Desde el servidor, se envían mensajes a GCM, y de aquí son enviados a todo los dispositivos que estén registrados. ◦ Esto hace posible que los mensajes sean recibidos
incluso cuando las aplicaciones están cerradas
Crear un proyecto Android en la consola de desarrolladores de Google
Implementar un servidor capaz de enviar mensajes PUSH, y de guardar un registro de los dispositivos que se registran en la aplicación
Montar un mecanismo para generar un id de registro de la aplicación para cada dispositivo
Construir un ‘Service’, que esté atento a la llegada de mensajes PUSH
En el ‘Service’ establecer una serie de acciones relacionadas con la llegada de mensajes PUSH
Al crear el proyecto, se genera un número de proyecto ◦ Más adelante, se utilizará como ‘Sender-id’
Adicionalmente, se debe crear una llave para servidores, que permita que servidores externos tengan acceso al proyecto ◦ API-Key
Debe existir una entidad capaz de enviar mensajes a GCM
Se asume que estos servidores almacenan los id de registro de los dispositivos que tengan instalada la aplicación
Dos mecanismos: HTTP y CCS
En la primera instalación, se debe registrar el dispositivo, para hacerlo capaz de recibir mensajes
Para hacer este registro, se necesita: ◦ Un identificador de quien envía los mensajes
(Sender-id) ◦ La versión de la aplicación
El id de registro se debería guardar a nivel local
También debería guardarse en el servidor que envía los mensajes
Un Service puede funcionar, incluso cuando la aplicación está cerrada
Es ideal para estar pendiente de los mensajes que llegan desde el servidor, en cualquier momento
Tipo especial de Service, recomendado para la recepción de mensajes PUSH
Debe implementar el método onHandleIntent()
Los ‘Intents’ que soliciten la ejecución del servicio son procesados uno por uno, en orden de llegada
Entidad para manejar eventos asociados al sistema ◦ Boot
◦ Cargador conectado
◦ Cargador desconectado
◦ Batería baja
◦ Batería con carga
◦ …
public class MyReceiver extends
BroadcastReceiver {
@Override public void onReceive(Context
context, Intent intent) {
// assumes WordService is a registered
service Intent intent = new Intent(context,
WordService.class);
context.startService(intent); }
}
Un tipo especial de BroadcastReceiver
Permite que el Service requerido por el BroadcastReceiver solicite que el dispositivo esté encendido únicamente cuando se esté procesando la información
Top Related