Подтвердить что ты не робот

Пользовательский макет уведомлений не работает на Android 2.3 или ниже

Я использую NotificationCompat.Builder для отображения моего уведомления с помощью версий Android и использования настраиваемого макета для уведомления.
Пользовательский макет отлично работает на 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 и ниже.

4b9b3361

Ответ 1

Это может быть ошибка в библиотеке поддержки - см. эту проблему.

Возможно, вам придется обойти это, применив ContentView напрямую:

not.contentView = contentView;