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