valid small notification invalid icon ejemplo android notifications illegalargumentexception

android - small - illegalargumentexception java



Android-java.lang.IllegalArgumentException: contentIntent ¿error requerido causado por una notificación? (4)

Creo que esto es porque la versión del sistema operativo Android

La versión 2.3 o inferior , debe establecer contentIntent , si no, obtendrá esta excepción.

En mi proyecto, escribo así:

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; }

¡Quizás esto pueda ayudarte!

Tengo un servicio en ejecución que actualiza una notificación en la barra de notificaciones cuando recibe un mensaje que dice que se debe cambiar.

Sin embargo, a veces recibo el siguiente error cuando la notificación debe actualizarse

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;

Creación de NotificationManager

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 la notificación

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

Entonces, algo está ocurriendo en mi contenido. En algún punto 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 usa en ningún otro lugar en el código aparte de lo que se muestra arriba, así que, ¿dónde podría restablecerse a cero?


En mi caso, tenía un código de ejemplo que hacer, con una única notificación para crear, y también recibí el error "contentIntent required" (error de contenido requerido). Google me llevó a este hilo: D

La fuente de este problema fueron las citas que copié de un código de ejemplo y las pegué en el proyecto Eclipse. Cuando eliminé "" y los escribí de nuevo y el problema se resolvió. Tal vez esto ayude a alguien.

Estas fueron las citas de la fuente de error: nb.setContentTitle ("¡Mi primera notificación!"); nb.setContentText ("Hola");


En tu caso

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

Si quieres usar Intents con la misma acción pero con diferentes extras:

1) Cambiar

requestCode

desde el valor predeterminado "0" en

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

a algo único como `

(int) System.currentTimeMillis();

`2)

notification.contentIntent = notificationIntent;

Ambos pasos son obligatorios porque:

  • La opción 2 no funcionará sin la opción 1.
  • La opción 1 lanzará IllegalArgumentException sin 2.

necesita establecer el contentIntent para su notificación.

en tu caso:

notification.contentIntent = notificationIntent;

de lo contrario, recibirá el mensaje, que el contenidoIntente de la notificación es nulo, porque no está establecido.

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

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