18

我使用NotificationCompat.Builderandroid 版本来显示我的通知,并为通知使用自定义布局。
自定义布局在 Android 3 及更高版本(API 级别 11)上运行良好,但在 API 级别 10 或更低版本上不显示。我在模拟器中对 2.3 和 2.2 进行了测试。

这是我的代码:

    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();

真的很基本。布局文件是正确的,它与 android.com 上的通知教程中的相同,以确保我没有在那里犯错。;)
记住:在 3.0 及更高版本上工作正常,但在 2.3 及更低版本上不行。

4

1 回答 1

38

这可能是支持库中的错误 - 请参阅此问题

您可能必须通过直接应用 contentView 来解决它:

not.contentView = contentView;
于 2012-09-24T23:55:45.073 回答