Android - java.lang.IllegalArgumentException: contentIntent requiere error causado por la notificación?

StackOverflow https://stackoverflow.com/questions/3112008

Pregunta

Tengo un servicio que se ejecuta que las actualizaciones de una notificación en la barra de notificaciones cuando se recieves un mensaje que dice que tiene que ser cambiado.

Sin embargo, me sale el siguiente error a veces, cuando la notificación se va a actualizar

java.lang.IllegalArgumentException: contentIntent required

Aquí está mi código:

configuración variable


int icon = R.drawable.notification;
CharSequence tickerText = "Test";
long when = System.currentTimeMillis();
PendingIntent contentIntent;

Notification notification = new Notification(icon, tickerText, when);

NotificationManager mNotificationManager;

NotificationManager Creación


    String ns = Context.NOTIFICATION_SERVICE;
    mNotificationManager = (NotificationManager) getSystemService(ns);

Creación de notificaciones


    Intent notificationIntent = new Intent(this, TestsApp.class);
    contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.flags |= Notification.FLAG_NO_CLEAR;
    notification.icon = R.drawable.notification3;
    notification.setLatestEventInfo(this, "Registering", "Test", contentIntent);
    mNotificationManager.notify(1, notification);

Actualización de notificación


    notification.icon = R.drawable.notification2;
    notification.setLatestEventInfo(getApplicationContext(), "Registered", "Test", contentIntent);
    mNotificationManager.notify(1, notification);   

Así que algo está pasando en alguna parte de mi contentIntent largo de la línea, ¿sería correcto?

Se declara en la parte superior de mi clase de servicio como una variable miembro y no se utiliza en ningún otro lugar en el código aparte de la muestra arriba, así que ¿dónde podría estar recibiendo restablece a cero?

¿Fue útil?

Solución

es necesario configurar el contentIntent para su notificación.

en su caso:

notification.contentIntent = notificationIntent;

de lo contrario se recibe el mensaje, que el contentIntent de la notificación es nula, ya que no se establece.

el docu está aquí: http://developer.android.com /reference/android/app/Notification.html#contentIntent

He aquí un pequeño ejemplo: http://united-coders.com/nico-heid/show-progressbar-in-notification-area-like-google-does-when-downloading-from-android

Otros consejos

creo que esto es debido a que el sistema operativo Android versión

La versión 2.3 o bajar , de ajuste se tiene contentIntent , en caso contrario, obtendrá esta excepción.

En mi proyecto, escribo como esto:

  

if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) { Intent intent = new Intent(); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intent, 0); mNotification.contentIntent = contentIntent; }

Tal vez esto podría ayudarle!

En su caso

  

contentIntent = PendingIntent.getActivity (esto, 0, notificationIntent,   0);

Si desea utilizar Intentos con la misma acción, pero diferentes extras:

1) Cambiar

  

requestCode

por defecto de "0" en

  

getActivity (Context context, int requestCode, Intent intent, int flags)

a algo único como `

  

(int) System.currentTimeMillis();

` 2)

  

notification.contentIntent = notificationIntent;

Los dos pasos son obligatorios, ya que:

  • Opción 2 no funcionará sin la opción 1.
  • Opción 1 tirará sin IllegalArgumentException 2.

En mi caso, yo tenía un código de ejemplo para hacer, con una única notificación para crear, y también me puso "contentIntent requiere" error - Google me llevó a este tema: D

el origen de este problema eran las citas que he copiado de un código de ejemplo y lo pegó en el proyecto Eclipse. Cuando he eliminado "" y se hayan escrito atrás y problema fue resuelto. Tal vez esto ayude a alguien.

Estos eran citas fuente de error: nb.setContentTitle ( "Mi primera notificación!"); nb.setContentText ( "Hola");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top