texto recibir quitar predeterminada porque para mensajes mensajeria los las google funciona configurar como color celular cambiar aplicaciones abre android push-notification

recibir - ¿Cómo determinar si la aplicación de Android se abre desde el mensaje de notificación?



porque mi celular no abre las aplicaciones android (3)

El código de inicio de la actividad sería así, de lo contrario, una vez que provenga de la notificación de GCM, a partir de ese momento, cada vez que la actividad provenga de la lista de Recientes, dirá que proviene 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) { } }

En general, cuando tengo un mensaje de notificación en la barra de notificaciones y hago clic en él. Se abre la aplicación registrada para ese mensaje.

En la actividad de inicio, ¿Cómo determinar si la aplicación está abierta desde allí?

y más mejor es ¿Cómo recuperar la identificación de la notificación en el método OnCreate ()?

Actualización : de @Ovidiu - aquí está mi código para poner Extras 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 el código "Startup.java" 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 () siempre devuelve null. Resulta que necesito pasar PendingIntent.FLAG_ONE_SHOT. Ahora se pasa !!


Tuve el mismo problema, y ​​no entiendo por qué tengo que usar el método putExtra ... Así que resolví esto: cuando recibes una notificación y la tocas, la aplicación se abrirá (normalmente 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 serán agregados a los extras de la intención.

Para que pueda actuar así: en su notificación, agregue un parámetro que represente su ID de notificación. Para esample "messageId" -> "abc", donde abc es su identificador de notificación.

Luego, en tu actividad principal, puedes 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ás 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.


putExtra(ID_KEY,id) usar putExtra(ID_KEY,id) cuando cree su Intent de iniciar su aplicación, y en su método onCreate() puede usar getIntent().getExtras().getInt(ID_KEY); para recuperar su integer identificación pasado.