Полная ошибка также содержит:java.lang.IllegalArgumentException: contentIntent требуется
android.app.RemoteServiceException: Bad notification for startForeground:
Я читал другие подобные сообщения here, попробовал свои предложения и читать их ссылку, но небольшое количество пользователей по-прежнему отчетности эта ошибка.
Обзор
Деятельность запускается внешним приложением. Это действие запускает пользовательскую службу распознавания речи. Это не использование startForeground:
this.startService(intent);
Активность затем вызывает покрытие();
Служба запускает собственный класс распознавания речи и передает ему контекст в конструкторе. В «начале речи обнаружило» я показываю следующее уведомление:
String notTitle = "Hello";
String notificationText = "hello there";
notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
myNotification = new Notification(
android.R.drawable.ic_btn_speak_now, notTitle,
System.currentTimeMillis());
myNotification.flags |= Notification.FLAG_AUTO_CANCEL;
Intent intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
myNotification.contentIntent = pendingIntent;
myNotification.setLatestEventInfo(mContext, notTitle,
notificationText, pendingIntent);
notificationManager.notify(MY_NOTIFICATION_ID, myNotification);
Уведомления не имеет требования, чтобы сделать что-нибудь «OnClick», как он отменен, как только пользователь перестает говорить. Первоначально я проходил «нулевое намерение», но, прочитав много сообщений, я добавил в случайном намерении/pendingIntent отображение параметров TTS, чтобы это исключить как проблему.
99% моих пользователей не имеют проблемы ни с указанным выше кодом, ни с пустым намерением. Мне нужно решить это для 1%, хотя, поскольку это очень важная часть моего приложения.
Любые предложения были бы очень оценены.
Спасибо за ваш ответ. Проблема на самом деле оказалась внешней библиотекой, которую я использовал, поэтому нет «правильного» ответа.Если вы обновите свой ответ некоторыми ссылками на ожидающие намерения для тех, кто когда-либо читал этот вопрос, я буду отмечать его как правильное для полноты. Приветствия. – brandall
Хорошо, я добавил несколько ссылок, последний - это еще одна ссылка аналогичной проблемы - я скопировал туда свой ответ: D. – Radu
Спасибо, это полезно. Я отмечен как правильный. – brandall