Android - Java.lang.LigalargumentException: Contentintent Обязательная ошибка, вызванная уведомлением?
-
29-09-2019 - |
Вопрос
У меня есть служба, запущенная, которая обновляет уведомление в строке уведомлений, когда он получает сообщение, что он должен быть изменен.
Однако иногда я получаю следующую ошибку, когда уведомление должно быть обновлено
java.lang.IllegalArgumentException: contentIntent required
Вот мой код:
Переменная установка
int icon = R.drawable.notification;
CharSequence tickerText = "Test";
long when = System.currentTimeMillis();
PendingIntent contentIntent;
Notification notification = new Notification(icon, tickerText, when);
NotificationManager mNotificationManager;
Создание NotificationManager
String ns = Context.NOTIFICATION_SERVICE;
mNotificationManager = (NotificationManager) getSystemService(ns);
Создание уведомлений
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);
Обновление уведомления
notification.icon = R.drawable.notification2;
notification.setLatestEventInfo(getApplicationContext(), "Registered", "Test", contentIntent);
mNotificationManager.notify(1, notification);
Так что-то происходит, мой докладчик где-то вдоль линии, это будет правильно?
Он объявлен в верхней части моего класса обслуживания в качестве переменной участника и не используется нигде в коде, кроме показанного выше, поэтому где можно сбросить на NULL?
Решение
Вам нужно установить Contentintent для вашего уведомления.
в твоем случае:
notification.contentIntent = notificationIntent;
В противном случае вы получите сообщение, что Contentintent из уведомления является NULL, потому что он не установлен.
Docu здесь: http://developer.android.com/reference/android/app/notification.html#contententent.
У меня есть небольшой пример здесь: http:///united-coders.com/no-heid/show-progressbar-in-notification-area-like-Igrogle-does-Chenloading-from-rom- android.
Другие советы
Я думаю, что это потому, что версия Android OS
Версия 2.3 или нижедолжен установить ContentIntent.Если нет, вы получите это исключение.
В моем проекте я пишу так:
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; }
Возможно, это может помочь вам!
В твоем случае
contentintent = pendingIntent.getactactive (это, 0, уведомление, 0);
Если вы хотите использовать Intents с тем же действием, но разные дополнения:
1) Изменить
requestCode
по умолчанию "0" в
getActivity (Context context, int requestCode, Intent intent, int flags)
к чему-то уникальному как `
(int) System.currentTimeMillis();
` 2)
Уведомление.
Оба шага являются обязательными, потому что:
- Вариант 2 не будет работать без варианта 1.
- Вариант 1 бросит неthaugalarGumentException без 2.
В моем случае у меня был пример код, с одним уведомлением для создания, и я также получил ошибку «Contentintent» - Google привел меня к этой теме: D
Источником этой проблемы были цитаты, которые я скопировал из примерного кода и вставил его в проекте Eclipse. Когда я удалил «» и набрал их назад, и проблема была решена. Может быть, это помогает кому-то.
Это были цитаты источника ошибки:NB.SetContentTitle («Мое первое уведомление!»); nb.setcontentText («Hello»);