Андроид макс. размер пользовательского уведомления

Я пытаюсь создать пользовательские уведомления для своего приложения.

Usually collapsed view layouts are limited to 64 dp, and expanded view layouts are limited to 256 dp.

Хотя я учитывал эти ограничения, кажется, что на некоторых телефонах уведомление отключено, как вы можете видеть на скриншотах ниже. Я провел некоторое исследование по этому поводу, потому что думал, что существуют ограничения, зависящие от разных производителей или пользовательских интерфейсов, но ничего не нашел.

Вот как это реализовано:

// 64dp is set for height
val collapsedView = RemoteViews(packageName, R.layout.custom_notification_collapsed)
// 256dp is set for height
val expandedView = RemoteViews(packageName, R.layout.custom_notification_expanded)

val customNotification: Notification = NotificationCompat.Builder(this, "default")
        .setSmallIcon(R.drawable.ic_launcher_background)
        .addAction(R.drawable.ic_map, "Personal", PendingIntent.getService(this, 0, personalIntent, PendingIntent.FLAG_UPDATE_CURRENT))
        .addAction(R.drawable.ic_map, "Business", PendingIntent.getService(this, 0, businessIntent, PendingIntent.FLAG_UPDATE_CURRENT))
        .addAction(R.drawable.ic_map, "Work", PendingIntent.getService(this, 0, businessIntent, PendingIntent.FLAG_UPDATE_CURRENT))
        .setColor(Color.parseColor("#00D8FF"))
        .setStyle(NotificationCompat.DecoratedCustomViewStyle())
        .setCustomContentView(collapsedView)
        .setCustomBigContentView(expandedView)
        .build()

notificationManager.notify(4, customNotification)

Вот результат:

Сяоми Ми Микс2

Самсунг Галакси Примечание 8

Теперь вопросы: Я как-то провалил реализацию? Если нет, то есть ли способ выяснить макс. высота уведомления для текущего телефона программно?

6
0
2 105
2

Ответы 2

Notification (ваш RemoteView), который вы видите, создан другим процессом, и только этот процесс может знать размер

Нет официального способа получить максимальную высоту для пользовательского уведомления. Я думаю, что единственный способ сделать это уменьшить размер текста

Они обрезаны из-за действий, которые вы добавляете попробуйте удалить действия, вы получите полный 256/64 дп.

Другие вопросы по теме