#android #android-notifications
#Android #android-уведомления
Вопрос:
У меня есть вариант использования, когда мне нужно изменить a Notification
после его получения Intent
через a BroadcastReceiver
. Просматривая документы <a rel=»noreferrer noopener nofollow» href=»https://developer.android.com/reference/kotlin/androidx/core/app/NotificationCompat.Builder#(android.content.Context, android.app.Notification)» rel=»nofollow noreferrer»/>здесь NotificationCompat.Builder
, чтобы найти этот конструктор в списке:
Builder(@NonNull context: Context, @NonNull notification: Notification)
С описанием:
Создает NotificationCompat.Builder, который можно использовать для создания уведомления, эквивалентного данному, чтобы можно было вносить обновления в существующее уведомление с помощью NotitifactionCompat.Builder API.
НО этот конструктор не распознается, когда я пытаюсь его использовать, и он не указан в фактическом источнике. Я обновил свои целевые и скомпилированные версии sdk до 30, но безуспешно (мой минимум — 21). Означает ли это, что это более чем вероятное изменение в будущем?
Есть ли другой способ клонировать a Notification
в Builder
объект, чтобы изменить его?
Ответ №1:
Основная причина
Конструктор NotificationCompat.Builder (контекст, уведомление) доступен из библиотеки приложений Android 1.3.0-alpha02, кажется, вы используете более старую версию, поэтому вы не можете использовать ее из кода.
Решение
Шаг 1. Обновите библиотеку Android AppCompat до версии 1.3.0-alpha02.
implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'
Шаг 2. Использовать из класса Kotlin
val notification = NotificationCompat.Builder(this, existingNotification)