The full error also contains:
android.app.RemoteServiceException: Bad notification for startForeground:
I've read other similar posts here, tried their suggestions and read their links, but a small number of users are still reporting this error.
Overview
An activity is started by an external application. This activity starts a custom speech recognition service. It does not use startForeground:
this.startService(intent);
The activity then calls finish();
The service starts the custom speech recognition class and passes context to it in a constructor. On 'beginning of speech detected' I display the following notification:
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);
The notification has no requirement to do anything 'onClick' as it's cancelled as soon as the user stops talking. I was originally passing a 'null intent', however, after reading many posts, I added in the random intent/pendingIntent of displaying TTS Settings, just to rule this out as the problem.
99% of my users don't have an issue with either the above code or passing a null intent. I need to solve this for the 1% though, as it's a very important part of my application.
Any suggestions would be very much appreciated.