Несоответствие типов.Требуется: NotificationCompat.Style, Найдено: Notification.BigPictureStyle - PullRequest
0 голосов
/ 22 декабря 2018

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

Однако я не могу использовать .setStyle(Notification.BigPictureStyle() поскольку NotificationCompat.Builder - это AndroidX, тогда как BigPictureStyle - это ядро ​​Android, и, казалось бы, несовместимо.Предположительно стиль должен исходить из AndroidX, но это не вариант импорта, даже если вручную ввести импорт.

Неисправный код:

    val notif = NotificationCompat.Builder(context, channelId)
        .setAutoCancel(true)
        .setSmallIcon(R.drawable.ic_notification)
        .setLargeIcon(image)
        .setContentTitle(apod.title)
        .setContentText(apod.desc.take(100))
        .setStyle(Notification.BigPictureStyle()
            .bigPicture(image)
            .bigLargeIcon(null as Bitmap))

Снимок экрана ошибки:

enter image description here

Импорт:

import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.graphics.Bitmap
import android.graphics.Color
import android.media.RingtoneManager
import android.os.Build
import androidx.core.app.NotificationCompat

Потенциально соответствующие строки уровня приложения build.gradle:

implementation 'com.android.support:design:28.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'

И, конечно, в gradle.properties:

android.useAndroidX=true
android.enableJetifier=true

Есть идеи, какие изменения можно внести, чтобы позволить мне отображать уведомление BigPicture при использовании AndroidX?

1 Ответ

0 голосов
/ 22 декабря 2018

Как всегда, как только вы пишете вопрос, вы решаете его.

Решением было просто изменить Notification.BigPictureStyle() на NotificationCompat.BigPictureStyle(), так как все библиотеки уведомлений AndroidX названы NotificationCompat!

Финальный код:

    val notif = NotificationCompat.Builder(context, channelId)
        .setAutoCancel(true)
        .setSmallIcon(R.drawable.ic_notification)
        .setLargeIcon(image)
        .setContentTitle(apod.title)
        .setContentText(apod.desc.take(100))
        .setStyle(NotificationCompat.BigPictureStyle()
            .bigPicture(image)
            .bigLargeIcon(null))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...