The following code has been confirmed to work fine on devices running HONEYCOMB+. However on Samsung galaxy Y it is not producing any notifications.
String tickerText = userString + " Download Queued";
Notification notification = new NotificationCompat.Builder(this).setAutoCancel(true)
.setContentTitle(userString)
.setContentText("Queued")
.setSmallIcon(R.drawable.stat_sys_download_done)
.setWhen(System.currentTimeMillis())
.setTicker(tickerText)
.build();
if(DBG_ENABLE) {
LogUtils.logD(TAG_LOG, "Posting queue notification : " + 0);
}
NotificationManager notificationManager =
(NotificationManager) getApplicationContext().getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
Note :
- I see the "Posting Queue notification" in the logs.
- I have copied the drawable
stat_sys_download_done
from android sdk into my project.
I'm not able to think of a way to debug this problem. I'm not sure if there is anything I'm missing. Any suggestions to fix this is appreciated.
When I tried the above solution, it crashed the app just declaring the empty PendingIntent as shown. Deciding I had a scope problem, because I am coding this notification in a BroadcastListener, I moved the pending intent into the onReceive method of the listener, and used the incoming context and intent instead of dummys. That works perfectly in my 2.3.6 Galaxy phone. Here is my code:
Note that I declared the builder, notifB, outside the listener where all the non-dynamic data is declared:
y0u can do either this also.it works on 2.3 and 2.3+
As CommonsWare suggested, I ran the app on a 2.3 emulator and it crashed. Reason being ContentIntent was not set. GingerBread expects a ContentIntent. So I added a dummy pending intent like :