Estoy trabajando en mi primera aplicación Android para usar el servicio Google Cloud Messaging (GCM) para notificaciones automáticas. Llegué al punto en que puedo enviar con éxito un mensaje desde mi aplicación de servidor y registrar el contenido del mensaje en el evento onMessage dentro de mi clase GCMIntentService en la aplicación cliente. Sin embargo, no veo ninguna indicación visual en el dispositivo de que se recibió un mensaje. Esperaba que el mensaje apareciera en la lista de notificaciones desplegables del teléfono, como lo hace en el iPhone. ¿Tiene que codificarse manualmente? ¿Existe también un método común para mostrar el mensaje, independientemente de qué actividad esté activa actualmente, y si la aplicación está inactiva en segundo plano? Cualquier ayuda apreciada.Android: las notificaciones automáticas GCM no aparecen en la lista de notificaciones
Respuesta
Este código generará una notificación en la barra del sistema de Android en la parte superior de la pantalla. Este código creará una nueva intención que dirigirá al usuario a un "Home.class" después de hacer clic en la notificación en la barra superior. Si desea hacer algo específico en función de la actividad actual, puede enviar solicitudes de difusión desde GCMIntentService a sus otras actividades.
Intent notificationIntent=new Intent(context, Home.class);
generateNotification(context, message, notificationIntent);
private static void generateNotification(Context context, String message, Intent notificationIntent) {
int icon = R.drawable.icon;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent =PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, notification);
}
Tenga en cuenta que este ejemplo utiliza los recursos en R.drawable y R.String que deben estar presentes para trabajar, pero hay que darle la idea. Consulte esto para obtener más información sobre las notificaciones de estado http://developer.android.com/guide/topics/ui/notifiers/index.html y sobre los receptores de difusión. http://developer.android.com/reference/android/content/BroadcastReceiver.html
Si está utilizando GcmListenerService puede utilizar este código, añadir a su onMessageReceived la SendNotification()
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
sendNotification(message);
}
private void sendNotification(String message) {
Intent intent = new Intent(this, YOURCLASS.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_park_notification)
.setContentTitle("Ppillo Message")
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
- 1. Notificaciones automáticas en la Web móvil
- 2. notificaciones de GCM en android 3.1: deshabilitar receptor de difusión
- 3. Notificaciones automáticas de Gmail en Rails
- 4. Notificaciones push en Android: Google GCM vs. Amazon SNS?
- 5. manejo de notificaciones automáticas a diferentes vistas
- 6. Escuchando notificaciones en Android
- 7. Recepción de notificaciones de GCM de Android cuando la aplicación está en estado detenido
- 8. Aplicación en el mercado Android: las notificaciones HTTP no vienen
- 9. notificaciones de cuadro de lista
- 10. Notificaciones repetitivas en Android 4
- 11. Recibe notificaciones actuales de Android
- 12. ¿Cómo hacer notificaciones en android?
- 13. Android: reciba todas las notificaciones por código
- 14. Android CursorLoader no responde a las notificaciones de ContentProvider
- 15. Verificar notificaciones de espera
- 16. ¿Cómo recibir notificaciones automáticas de mi cuenta de Gmail?
- 17. Eliminar notificaciones de la barra de notificaciones de otras aplicaciones
- 18. Notificaciones de Windows Phone 7 Push que no aparecen en mi teléfono
- 19. android GCM no funciona
- 20. Android: administración de múltiples notificaciones
- 21. iphone y notificaciones: ¿número máximo de notificaciones?
- 22. Lista de notificaciones estándar de Rails 3
- 23. desactivar las NOTIFICACIONES en la salida psql
- 24. Envío de notificaciones locales en Android
- 25. Desactivar notificaciones de Gnome 3/pop-ups/notificaciones integradas
- 26. Ocultar barra de notificaciones
- 27. Lista de sonidos disponibles para notificaciones push de iOS
- 28. ¿Cómo puedo abrir/cerrar programáticamente las notificaciones en Android?
- 29. Gran uso de memoria en las notificaciones
- 30. Notificaciones de escritorio de GitHub
eso es fantástico, muchas gracias. –
Hola, he usado este complemento https://github.com/marknutter/GCM-Cordova y he seguido todas las instrucciones. sin embargo, solo puedo recibir mensajes cuando estoy dentro de la aplicación, pero no puedo conseguir que la aplicación muestre notificaciones en el área de notificación de androides. por favor avise. Uso este plugin porque uso phonegap @ Zachary Moshansky –
Lo siento pero nunca he usado Phonegap y no puedo comentar cómo hacer que las notificaciones funcionen con él –