奥利奥中未显示通知

2023-11-21

普通通知生成器不会在 Android O 上显示通知。

如何在 Android 8 Oreo 上显示通知?

是否需要添加任何新代码来在 Android O 上显示通知?


在 Android O 中是必须使用渠道与您的通知生成器

下面是示例代码:

// Sets an ID for the notification, so it can be updated.
int notifyID = 1; 
String CHANNEL_ID = "my_channel_01";// The id of the channel. 
CharSequence name = getString(R.string.channel_name);// The user-visible name of the channel.
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
// Create a notification and set the notification channel.
Notification notification = new Notification.Builder(MainActivity.this)
            .setContentTitle("New Message")
            .setContentText("You've received new messages.")
            .setSmallIcon(R.drawable.ic_notify_status)
            .setChannelId(CHANNEL_ID)
            .build();

或者通过以下方式处理兼容性:

NotificationCompat notification =
        new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.notification_icon)
        .setContentTitle("My notification")
        .setContentText("Hello World!")
        .setChannelId(CHANNEL_ID).build();

现在让它通知

NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
 mNotificationManager.createNotificationChannel(mChannel);

// Issue the notification.
mNotificationManager.notify(notifyID , notification);

或者,如果您想要简单的修复,请使用以下代码:

NotificationManager mNotificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
       mNotificationManager.createNotificationChannel(mChannel);
    }

Updates: NotificationCompat.Builder 参考

NotificationCompat.Builder(Context context)

此构造函数在 API 级别 26.0.0 中已弃用 所以你应该使用

Builder(Context context, String channelId)

所以没必要setChannelId使用新的构造函数。

并且您应该使用当前最新的 AppCompat 库 26.0.2

compile "com.android.support:appcompat-v7:26.0.+"

来源自YouTube 上的 Android 开发者频道

另外,你可以检查官方 Android 文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

奥利奥中未显示通知 的相关文章

随机推荐

  • 将 Gif 图像转换为 NSData

    我的相册里有一张 gif 图像 当我使用UIImagePickerController要选择该图像 我需要将图像转换为NSData用于存储 早些时候 我用过 NSData thumbData UIImageJPEGRepresentatio
  • pathos.multiprocessing 有星图吗?

    执行下面的代码时出现错误 问题似乎是map不支持接受多个输入的函数 就像 python 内置函数一样multiprocessing包裹 但是内置的包里有一个starmap这解决了这个问题 做pathos multiprocessing有相同
  • 为什么我们需要在同一个对象上同步才能使notify()起作用

    我正在得到java lang IllegalMonitorStateException 我提到this问题 它解决了我的问题 第一个答案是 To be able to call notify you need to synchronize
  • 应用程序运行时替换 Realm 文件

    为了实现备份 恢复功能 我删除了现有的 Realm 数据库文件并将其替换为同名的新数据库文件 但是 当应用程序仍在运行时 它看不到新数据库文件的内容 如果我退出并重新启动应用程序 它确实会看到新数据库文件的内容 有什么方法可以让应用程序看到
  • 警告:mysqli_query() 期望参数 1 为 mysqli,给定资源[重复]

    这个问题在这里已经有答案了 我的代码中出现此错误 我不知道如何解决我的代码
  • 将类型变量传递给函数

    我试图通过将类型传递给函数来实现类型断言 换句话说 我正在努力实现这样的目标 Note that this is pseudocode because Type isn t the valid thing to use here func
  • “实现 deps.support.app_compat”中的“deps”是什么?

    我正在寻找新架构组件的谷歌示例 我在其中找到了如下代码 dependencies Support libraries implementation deps support app compat implementation deps su
  • 如何处理 Windows 的 ReadDirectoryChangesW() 及其混合长/短文件名输出?

    我正在开发一段 C 代码 它使用 ReadDirectoryChangesW 来监视 Windows 中目录下的更改 我已阅读有关 ReadDirectoryChangesW 和 FILE NOTIFY INFORMATION 结构的相关
  • 打字稿,如何将对象传递给类的构造函数进行实例化

    我有一个从后端 api 获取的数组对象数据 喜欢 name react age 4 name angular age 4 name rxjs age 2 我确定一个class and an interface 像这样 interface I
  • 另一个函数中的 C 函数声明

    谁能向我解释一下这些行 int xyz void extern void abc void 函数定义中的函数声明 或者我误解了什么 是的 你的猜测是正确的 它声明了该函数的存在abc 因此可以在其中引用xyz 请注意 extern是不必要的
  • 你能在.NET MVC模板中使用bootstrap 4制作Visual Studio脚手架等吗?

    当您在 vs17 中创建新项目时 c 中的基本 mvc net Web 应用程序 它附带了 bootstrap 3 这意味着所有的脚手架页面和设计都是错误的 因为它们修改了列大小调整系统 有没有什么方法可以更新 VS 以便在将项目更新为 b
  • int((0.1+0.7)*10) = 7 在多种语言中。如何防止这种情况发生?

    最近我遇到了多种语言的错误 功能 我对它是如何引起的有非常基本的了解 并且我想要一些详细的解释 但是当我想到这些年来我必须犯的所有错误时 问题是我如何确定 嘿 这可能会导致一个可笑的错误 我最好使用任意精度函数 还有哪些其他语言有这个错误
  • GitHub:企业接收后挂钩

    有谁知道 GitHub Enterprise 中是否有一种机制来设置一个通用的接收后挂钩 该挂钩将适用于所有存储库 包括创建后的新存储库 我正在尝试开发一个到辅助系统的链接 该系统希望收到所有存储库的所有推送的通知 并且需要为每个新存储库进
  • wicket @SpringBean 无法创建 bean

    我有一个关于 Eclipse Wicket Spring Hibernate 的项目 一切正常 除了 当我尝试时 public class SortableContactDataProvider extends SortableDataPr
  • 如何检查两个布尔值是否相等?

    我需要一个可以在 junit 中调用的方法assertTrue 方法比较两个布尔值以检查它们是否相等 并返回一个布尔值 例如 这样的事情 boolean isEqual Boolean equals bool1 bool2 如果它们不相等则
  • 将鼠标悬停在按钮上时文本颜色发生变化

    我正在尝试更改悬停时按钮内文本的颜色 我可以使按钮本身改变颜色 但我希望按钮文本也改变颜色 这是我当前的CSS button input button a button input type submit background 2e77ae
  • 通过 CLI 运行 Codeigniter 会输出网站根目录而不是预期结果

    我正在跟进本教程通过 CLI 运行 Codeigniter 我已经做了他们所做的一切 复制并粘贴 现在 当我运行此命令时 除了输出网站索引内容之外 它不会执行预期的操作 cd Users MyUsername Sites code php
  • 调用 ruby​​ 方法而不实例化类

    如果我像这样调用 Rails 活动模型方法上的方法 class Foo lt ActiveRecord Base end Foo first 我将取回第一个活动记录 我不必实例化该类 但是如果我创建自己的类并调用方法 则会出现异常 clas
  • Xcode 6 删除应用程序组

    我需要删除一些App Groups我创建的目的是为了在应用程序和它的 Today 扩展之间共享信息 有谁知道如何删除App Group在功能部分创建Xcode in App Groups 删除应用程序组的步骤如下 登录到苹果开发者使用您的开
  • 奥利奥中未显示通知

    普通通知生成器不会在 Android O 上显示通知 如何在 Android 8 Oreo 上显示通知 是否需要添加任何新代码来在 Android O 上显示通知 在 Android O 中是必须使用渠道与您的通知生成器 下面是示例代码 S