android - 类型不匹配。需要 : NotificationCompat. 样式,找到 : Notification. BigPictureStyle

标签 android notifications androidx

我正在为我的应用程序使用 AndroidX,并尝试显示具有自定义 BigPicture 样式的通知(如 in the docs )。

但是,我不能使用 .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

知道可以进行哪些更改以允许我在使用 AndroidX 时显示 BigPicture 通知吗?

最佳答案

一如既往,一旦你写下问题,你就解决了它。

解决方案只是将 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))

关于android - 类型不匹配。需要 : NotificationCompat. 样式,找到 : Notification. BigPictureStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53892039/

相关文章:

android - android webview 中的后退按钮?

android - 以编程方式取消(和隐藏)Android 通知

swift - 在 swift 的通知 block 中引用自己

java - 单击通知后更改类 Android

java - 在 Android Studio 中迁移到 AndroidX 后出现 YoutubeAndroidPlayerAPI 错误

android-studio - 发现多个文件具有独立于操作系统的路径 'META-INF/proguard/coroutines.pro'

android-recyclerview - 索引越界异常 : Inconsistency detected error while scrolling

android - react native : Handle silent push notification

Android - 如何避免在多个 list 文件中重复?

android - 如何在 build.gradle 中引用系统 ProGuard 二进制文件?