类型不匹配。必需:NotificationCompat.Style,找到:Notification.BigPictureStyle

时间:2018-12-22 00:04:20

标签: android notifications androidx

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

但是,我无法使用BigPictureStyle,因为 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)) 是AndroidX,而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 是核心android,并且似乎不兼容。大概样式必须来自AndroidX,但这似乎不是导入选项,即使手动输入导入也是如此。

麻烦的代码:

build.gradle

错误截图:

enter image description here

进口:

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

当然还有std::getline()

std::stringstream ss

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

1 个答案:

答案 0 :(得分:3)

一如既往,只要您写下问题就可以解决。

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