Android 为什么Oreo上的通知不显示,除非设置了图标

Android 为什么Oreo上的通知不显示,除非设置了图标,android,android-notifications,android-notification-bar,Android,Android Notifications,Android Notification Bar,这是一个平台错误还是我的实现中的一些问题?它似乎与重要性级别无关。Android的版本是8.1.0。目标SDK是22(不幸的是,我被困在这个问题上) 点击按钮: 通知出现: val builder = NotificationCompat.Builder(requireContext(), AppConstants.NOTIFICATION_DEFAULT_ID).apply { setContentTitle("New Order Re

这是一个平台错误还是我的实现中的一些问题?它似乎与重要性级别无关。Android的版本是8.1.0。目标SDK是22(不幸的是,我被困在这个问题上)

点击按钮:

通知出现:

val builder = NotificationCompat.Builder(requireContext(), AppConstants.NOTIFICATION_DEFAULT_ID).apply {
                        setContentTitle("New Order Received")
                        setContentText("Fetching order...$payload")
                        setSmallIcon(R.drawable.outline_receipt_white_24)
                        setSound(Uri.parse("android.resource://" + activity?.packageName + "/" + R.raw.notification_decorative))
                        setCategory(NotificationCompat.CATEGORY_STATUS)
                        priority = NotificationCompat.PRIORITY_HIGH
                        setProgress(0, 0, true)
                    }

val notificationManager = NotificationManagerCompat.from(requireContext())
notificationManager.notify(payload, builder.build())
通知不会出现:

val builder = NotificationCompat.Builder(requireContext(), AppConstants.NOTIFICATION_DEFAULT_ID).apply {
                        setContentTitle("New Order Received")
                        setContentText("Fetching order...$payload")
                        setSound(Uri.parse("android.resource://" + activity?.packageName + "/" + R.raw.notification_decorative))
                        setCategory(NotificationCompat.CATEGORY_STATUS)
                        priority = NotificationCompat.PRIORITY_HIGH
                        setProgress(0, 0, true)
                    }

val notificationManager = NotificationManagerCompat.from(requireContext())
notificationManager.notify(payload, builder.build())
这是一个平台错误还是我的实现中的一些问题


两者都不是,假设您是在暗示缺陷在Oreo中。您应该始终提供一个小图标以显示在状态栏中。在旧版本的Android中有一个bug,你可以破解一个
通知
,这样它就不会显示这样的图标。恶意软件作者认为这很好,谷歌最终修复了它。

谢谢@commonware,我应该阅读这些文档。你可以看到上面写着一个小图标,由setSmallIcon()设置。这是唯一需要的用户可见内容。我认为应该是红色大字,因为除非你真的想让通知因为某些疯狂的原因发出噪音,否则如果没有图标,它们似乎毫无意义!
val builder = NotificationCompat.Builder(requireContext(), AppConstants.NOTIFICATION_DEFAULT_ID).apply {
                        setContentTitle("New Order Received")
                        setContentText("Fetching order...$payload")
                        setSound(Uri.parse("android.resource://" + activity?.packageName + "/" + R.raw.notification_decorative))
                        setCategory(NotificationCompat.CATEGORY_STATUS)
                        priority = NotificationCompat.PRIORITY_HIGH
                        setProgress(0, 0, true)
                    }

val notificationManager = NotificationManagerCompat.from(requireContext())
notificationManager.notify(payload, builder.build())