Cómo determinar si la aplicación de Android se abre desde el mensaje de notificación?
En general, cuando tengo mensaje de notificación en la barra de notificación y haga clic en él. Abre la aplicación registrada para ese mensaje.
En la actividad de inicio, ¿Cómo determinar si la aplicación está abierta desde ella?
- ¿Es posible utilizar GCM sin la cuenta de Google y Google Play Services en el dispositivo?
- GCM Cloud Connection Server - cómo empezar a usarlo?
- Comportamiento de aplicaciones Android VOIP en modo Doze
- ¿Cómo obtener el estado del dispositivo Android (sin conexión o en línea) mediante GCM?
- Solicitud del ID de registro de Google Cloud Messaging (GCM) cada vez que se inicia la aplicación
Y más mejor es ¿Cómo recuperar la identificación de la notificación en el método OnCreate ()?
Actualización : desde @Ovidiu – aquí está mi código de putExtra para empujar
Notification notification = new Notification(icon, tickerText, System.currentTimeMillis()); notification.contentView = contentView; Intent notificationIntent = new Intent(this, Startup.class); notificationIntent.putExtra("JOBID", jobId); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT); notification.flags = Notification.FLAG_AUTO_CANCEL; notification.contentIntent = contentIntent; mNotificationManager.notify(jobId, notification);
Y en la actividad principal "Startup.java" el código es
Intent intent = this.getIntent(); if (intent != null && intent.getExtras() != null && intent.getExtras().containsKey("JOBID")) { int jobID = this.getIntent().getExtras().getInt("JOBID"); if (jobID > 0) { } }
Intent.getExtras () devuelve siempre null. Resulta que necesito pasar PendingIntent.FLAG_ONE_SHOT. ¡Ahora es pasado adelante !!
- Notificación push de Android: determina si se muestra Notification.bigContentView
- La respuesta de GCM que viene es: Error = NotRegistered
- ¿Qué es la parte "Autorización" de la solicitud de post http del mensaje de Google Firebase Downstream?
- Después de actualizar los servicios de reproducción de Google a las notificaciones de envío 8.4.0 mostradas por ellos mismos
- No se resuelve la integración de GCM y gcm_defaultSenderId
- Notificaciones push en Android 5 no se entregan cuando la aplicación en segundo plano (Titanium) - Pero lo hace en primer plano
- Cómo construir un servidor de notificación push de Android en PHP
- ¿Hay algún servicio de notificación push en Android como Apple Push Notification Service?
Necesitas usar putExtra(ID_KEY,id)
cuando crees tu Intent
para iniciar tu aplicación, y en tu método onCreate()
puedes usar getIntent().getExtras().getInt(ID_KEY);
Para recuperar su integer
identificación pasado.
El código Start Activity sería así, de lo contrario, una vez que se reciba de la notificación de GCM, desde entonces cada vez que la Activity venga de la lista Recent, se dirá que viene de la notificación de GCM, lo cual es incorrecto.
Intent intent = this.getIntent(); if (intent != null && intent.getExtras() != null && intent.getExtras().containsKey("JOBID") && (intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) { int jobID = this.getIntent().getExtras().getInt("JOBID"); if (jobID > 0) { } }
Tuve el mismo problema, y no entiendo por qué tengo que usar el método putExtra … Así que resolví así: cuando reciba una notificación y toque en ella, la aplicación se abrirá (normalmente se abre la actividad principal de la aplicación ) Y, en los extras, puede encontrar alguna información sobre esa notificación. Puede agregar parámetros de clave / valor a las notificaciones que está enviando a los dispositivos registrados. Estos parámetros se agregarán a los extras de intención.
Así que puedes actuar así: en tu notificación, agrega un parámetro que representa tu ID de notificación. Para esample "messageId" -> "abc", donde abc es su identificador de notificación.
Entonces, en su actividad principal, usted puede hacer:
if (getIntent().getExtras().keySet().contains("messageId")) { // you opened the app from a notification String messageId = getIntent().getStringExtra("messageId") // do domething... } else { // you opened the app normally // do domething... }
Y recuperará el id de la notificación. Por lo tanto, puede utilizar esta información para, por ejemplo, obtener la notificación de su db u otras operaciones.