Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom notification layout don't work on Android 2.3 or lower

I use the NotificationCompat.Builder to display my notification through android versions and use a custom layout for the notification.
The custom layout works fine on Android 3 and up (API Level 11), but don't show up on API Level 10 or lower. I tested it on 2.3 and 2.2 in the Emulator.

Heres my code:

    Builder builder = new NotificationCompat.Builder(getApplicationContext());

    RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification_layout);
    contentView.setImageViewResource(R.id.notImage, R.drawable.stat_icon);
    contentView.setTextViewText(R.id.notTitle, getResources().getString(R.string.streamPlaying));
    contentView.setTextViewText(R.id.notText, StartActivity.streamName + " " + getResources().getString(R.string.playing));

    builder
            .setContentTitle(getResources().getString(R.string.streamPlaying))
            .setContentText(StartActivity.streamName + " " + getResources().getString(R.string.playing))
            .setSmallIcon(R.drawable.stat_icon)
            .setContentIntent(pendingIntent)
            .setOngoing(true)
            .setWhen(0)
            .setTicker(StartActivity.streamName + " " + getResources().getString(R.string.playing))
            .setContent(contentView);

    not = builder.build();

really basic. The layout file is correct, its the same as in the notification tutorial on android.com, to make sure I didn't make a mistake in there. ;)
Remember: Working fine on 3.0 and up, but not at 2.3 and lower.

like image 963
Leandros Avatar asked Sep 24 '12 23:09

Leandros


Video Answer


1 Answers

This may be a bug in the support library - see this issue.

You may have to work around it by applying the contentView directly:

not.contentView = contentView;
like image 113
UgglyNoodle Avatar answered Nov 12 '22 00:11

UgglyNoodle