Как использовать messagesBuilder.setSmallIcon (значок) в последнем обновлении Android SDK? - PullRequest
0 голосов
/ 28 июня 2019

Я хочу использовать setSmallIcon(Icon.createWithBitmap()), чтобы создать маленький значок для моего уведомления, но конструктор NotificationCompat.Builder(context) устарел, и последний конструктор NotificationCompat.Builder(context, channelId) не содержит этот метод, который принимает icon в качестве параметра.Как я могу использовать значок объекта в последнем построителе уведомлений?

val channelId =
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
            { createNotificationChannel("111", "Speed Monitor Service") } else { "" }

        val remoteView = RemoteViews(packageName, R.layout.notification)
        val notification = NotificationCompat.Builder(this, channelId)
            .setSmallIcon(R.drawable.ic_launcher_background) //this method only accepts int not Icon
            .setCustomContentView(remoteView)
            .build()

        startForeground(1, notification)

Ответы [ 2 ]

2 голосов
/ 28 июня 2019

Notification.Builder.setSmallIcon - это то, что вам нужно использовать.Если вам нужно использовать более старые уровни API, вы можете использовать NotificationCompat.Builder.

. Этот метод имеет несколько переопределений в зависимости от ресурса, который вы хотите использовать, если вам нужно использовать образ времени выполнения, а не ресурсВ приложении вы можете использовать класс Icon и метод Notification.Builder.setSmallIcon(Icon icon).

.
1 голос
/ 28 июня 2019

Ваш вопрос немного расплывчатый, позвольте мне прояснить его для вас.Notification.Builder(context) (что устарело) и Notification.Builder(context, channelId) - два конструктора одного класса Notification.Builder.Сам класс не считается устаревшим.

Notification.Builder (context, channelId) не содержит этот метод, который принимает значок в качестве параметра

Вышеприведенное утверждение неверно (неверно, как в технически неправильном).Использование любого из конструкторов не означает, что вы используете два разных класса.Здесь есть только один класс Notification.Builder, и он содержит функцию setSmallIcon(Icon icon), как вы можете видеть здесь https://developer.android.com/reference/android/app/Notification.Builder.html#setSmallIcon(android.graphics.drawable.Icon)

Другими словами, setSmallIcon(Icon icon) должен быть там.Причина, по которой вы не видите эту функцию, может быть различной.Покажите код для дальнейшего оформления.

...