Рамки вокруг кастомного уведомления и фоновое изображение
В кастомном уведомлении отображаются рамки вокруг и если новое уведомление приходит, то мое уведомление по высоте сужается. Как можно исправить эти две ошибки?
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
String channelID = "cID";
CharSequence cannelName = "MyChannel";
int importance = NotificationManager.IMPORTANCE_LOW;
NotificationChannel notificationChannel = new NotificationChannel(channelID, cannelName, importance);
notificationChannel.enableLights(true);
notificationChannel.setLightColor(Color.RED);
notificationChannel.enableVibration(true);
notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400});
notificationManager.createNotificationChannel(notificationChannel);
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.custom_notification);
remoteViews.setTextViewText(R.id.txtAppTitle, "НАЗВАНИЕ_ПРИЛОЖЕНИЯ");
remoteViews.setTextViewText(R.id.txtAudioTitle, "Играет: " + "Audio 1");
remoteViews.setOnClickPendingIntent(R.id.btnClose, pCloseIntent);
Notification notification = new NotificationCompat.Builder(PlayerService.this, channelID)
.setSmallIcon(R.mipmap.ic_launcher)
.setChannelId(channelID)
.setCustomContentView(remoteViews)
.setCustomBigContentView(remoteViews)
.setContentIntent(pendingIntent).build();
startForeground(PlayerConstants.NOTIFICATION_ID.PLAYER_SERVICE_ID, notification);
}
Ответы (1 шт):
По всей видимости проблема возникает из-за устройства Xiaomi и его оболочки MIUI. Вообще постарайтесь отказаться от custom layout для notifications. Система предоставляет широкие возможности для настройки уведомления, при этом не выбиваясь из общего стиля системы.
P.S. В скором времени, при переходе на minSDK 30. Область использования кастомного представления будет сильно урезана и общий стиль уведомления задать не получится. Постарайтесь сразу привести его к стандартному виду, тем более если вы не предоставляете особенных функций или контента.
Кнопка закрыть на уведомлении немного избыточна, ведь стандартным поведением является смахивание. Добавить действие можно с помощью .addAction(pendingIntent)
Текст можно установить с помощью .setContentTitle(name).setContentText(body)
Установить фон можно так:
.setColor(resources.getColor(R.color.colorPrimary))
.setColorized(true)
.setStyle(androidx.media.app.NotificationCompat.DecoratedMediaCustomViewStyle())
