Я реализовал простое частное уведомление, чтобы оно не показывало его содержимое на экране блокировки, если у пользователя есть защита экрана блокировки (pin, patter, fingerprint).
Все работает хорошо, за исключением того, что по какой-то причине Android добавляет дополнительный отступ или дополнительную высоту к уведомлению без причины.
Уведомление, которое генерируется мной на изображении ниже, является первым.
Слева, как это должно выглядеть. У него нет setPublicVersion
, только видимость установлена на частный.
Справа показано, как это выглядит с неправильным размером. Это устанавливается через setPublicVersion
.
Ниже приведен код, используемый для создания уведомления на левом изображении:
new NotificationCompat
.Builder(context, NOTIFICATION_CHANNEL_ID)
.setVisibility(NotificationCompat.VISIBILITY_PRIVATE)
.setSmallIcon(drawable);
Ниже приведен код, используемый для создания уведомления на правом изображении:
new NotificationCompat
.Builder(context, NOTIFICATION_CHANNEL_ID)
.setVisibility(NotificationCompat.VISIBILITY_PRIVATE)
.setSmallIcon(drawable)
.setPublicVersion(new NotificationCompat
.Builder(context, NOTIFICATION_CHANNEL_ID)
.setSubText("1 unread message")
.setSmallIcon(drawable)
.build()
);
Я также пытался не задавать субтекст, а также показывать общедоступное уведомление как общедоступное. Без изменений.
Эта проблема существует в Android 8 и Android 9.
Что я делаю неправильно? Чего-то еще не хватает или это ошибка Android?