Android使用通知(Notification)——方法过时的解决办法

今天照着《Android第一行代码第二版-郭霖》把通知那部分的代码实现了一下,结果发现 Notification notification = new NotificationCompat.Builder(this)过时了。
在这里插入图片描述
我查了一下开发者文档,根据文档可以看到public Builder (Context context)已经过时了,需要在原来的基础上加上一个参数String类型的channelId。对于这个channelId,文档里并没有说明这个的具体含义,只是说通知将发布在此NotificationChannel???
在这里插入图片描述
不管了先随便设一个值看看效果,代码如下,布局文件的代码就不贴出来了,就一个按钮。

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener {NotificationManager manager ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button sendNotice = findViewById(R.id.send_notice);sendNotice.setOnClickListener(this);manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);}@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.send_notice:Notification notification = new NotificationCompat.Builder(this,"myChannelId").setContentTitle("This is content title").setContentText("This is content text").setWhen(System.currentTimeMillis()).setSmallIcon(R.mipmap.ic_launcher).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)).build();manager.notify(1,notification);break;default:break;}}
}

运行结果如下:
在这里插入图片描述
根据查看别的博客才知道要为通知注册渠道,要不然不会发出通知,代码修改如下:


import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity implements View.OnClickListener {NotificationManager manager ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button sendNotice = findViewById(R.id.send_notice);sendNotice.setOnClickListener(this);manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);}@Overridepublic void onClick(View view) {switch (view.getId()){case R.id.send_notice://高版本需要渠道if(Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){//只在Android O之上需要渠道NotificationChannel notificationChannel = new NotificationChannel("myChannelId","channelname",NotificationManager.IMPORTANCE_HIGH);//如果这里用IMPORTANCE_NOENE就需要在系统的设置里面开启渠道,通知才能正常弹出manager.createNotificationChannel(notificationChannel);}Notification notification = new NotificationCompat.Builder(this,"myChannelId").setContentTitle("This is content title").setContentText("This is content text").setWhen(System.currentTimeMillis()).setSmallIcon(R.mipmap.ic_launcher).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher)).build();manager.notify(1,notification);break;default:break;}}
}

关键代码就在下面这段代码,其目的就是为了注册渠道,之后就可以使用这个channelId来发通知了。

    if(Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){//只在Android O之上需要渠道NotificationChannel notificationChannel = new NotificationChannel("myChannelId","channelname",NotificationManager.IMPORTANCE_HIGH);//如果这里用IMPORTANCE_NOENE就需要在系统的设置里面开启渠道,通知才能正常弹出manager.createNotificationChannel(notificationChannel);}

结果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45398.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业微信客户群事件通知

企业微信: https://work.weixin.qq.com/ 概述 企业微信在推送消息给企业时,会对消息内容做AES加密,以XML格式POST到企业应用的URL上。 企业在被动响应时,也需要对数据加密,以XML格式返回给企业微信。 通知回调地址配置 获取access…

Android APP被关闭后无法收到推送消息(尝试)

1. Android端进程被杀死后,目前自带的保护后台接收消息活跃机制。暂时没有什么好的机制保持任何情况下都活跃 文章参考:http://blog.csdn.net/marswin89/article/details/50917098 android原生系统用home键杀进程可以起来,如果是强行停止…

通知与服务——消息通知——通知推送Notification

手机通知栏存放的是App主动推给用户的提醒消息,每条消息包括消息图标、消息标题、消息内容等,这些消息元素由通知建造器Notification.Builder设定。 常用方法如下: setSmallIcon:设置应用名称左边的小图标。setLargeIcon&#xff…

Android Notification(通知消息)

Android Notification通知消息 Android Notification(通知消息)样式一、核心文件源码二、主界面页面三、单击通知跳转的Activity四、单击通知跳转的页面五、最终效果 Android Notification(通知消息)样式 ① 为小图标 ② 为App名称 ③ 为标题 ④ 为内容 ⑤ 为大图标 一、核心文…

Android直接回复通知

Android直接回复通知 通知直接回复 Android N/7.0 Android直接回复通知 前言创建通知 创建notification对象添加一个Action添加一个广播接收Action事件添加直接回复输入框把直接回复的内容发送到广播接收器结合Hands Up带来超棒的用户体验 Hands Up直接回复通知不消失的问题总结…

Android 实现微信,QQ的程序前后台切换:back键切换后台;点击通知栏恢复前台。

实现类似微信,QQ的前后台切换:back键切换后台;点击通知栏恢复前台。 1、back键切换后台的实现: 这个实现需要在主activity重写onbackpressed()方法。代码如下: Overridepublic void onBackPressed() {Intent intent…

Python源码学习笔记:Python虚拟机

Python虚拟机 注:本篇是根据教程学习记录的笔记,部分内容与教程是相同的,因为转载需要填链接,但是没有,所以填的原创,如果侵权会直接删除。此外,本篇内容大部分都咨询了ChatGPT,为笔…

Windows PyCharm 2022/2023 使用Centos7 的虚拟环境 venv 实现文件实时同步 代码代码Git自动识别 解决 Samba Cannot Save File 的问题

前期准备 git报错 fatal: unsafe repository 解决方法 因为是远程文件夹,老版本时没这个问题,新版本git或者pycharm有这个限制,不能自动识别更改的代码,报unsafe.directory的问题,直接暴力解决,加* git c…

接口间参数传递的一种解决方案

引言 做过接口自动化测试的同学肯定都熟悉在全链路测试过程中,很多业务场景的完成并非由单一接口实现,而是由很多接口组成的一条链路实现。例如你在淘宝上购物场景。 不同于单接口测试,这种链路型的接口自动化测试,由于接口间有参…

计算机应用设计大赛获奖信息,北京大学第六届“计算机应用设计大赛”圆满落幕...

6月6日下午,北京大学创新创意系列赛事颁奖典礼在英杰交流中心月光厅举行,会上颁发了计算机应用设计大赛、“挑战杯”系列竞赛、数学建模与计算机应用竞赛和“禁毒教育”创意大赛四项赛事的各类奖项。信息科学技术学院2013级本科生王迪作为获奖代表上台领…

魔物学院计算机,测试 | 你属于魔法学校什么学院的?

原标题:测试 | 你属于魔法学校什么学院的? 本Part长年主持:绿茶 本Part今日主人公:心理测试 如果你有机会在霍格沃茨魔法学校读书,依据你的性格,分院帽会把你分到哪个学院呢?你适合哪个学院呢?是高贵的斯莱特林,还是勇敢的格兰芬…

uniapp 微信小程序通过 wx.openCustomerServiceChat对接客服。

直接上解决方案,直接在绑定的方法中调用wx.openCustomerServiceChat 方法即可。 需要注意的几点。 hbuilder x 需升级到 3.4.3 版本以上。使用的,微信开发者工具中是看不到效果的,需要打包后,在微信中扫码查看。(体验…

微软丢出王炸:微软发布重磅更新Windows Copilot

在今天凌晨结束的微软 Build 2023 大会上,微软发布了重磅更新Windows Copilot. 微软此前把 GPT-4 接入Office 套件而推出的 Copilot,将全面集成到 Windows 系统。 Windows Copilot 注册直通: https:/forms.office.com/pages/responsepage.asp…

仿QQ聊天程序

仿QQ聊天程序 转载请标明出处:牟尼的专栏 http://blog.csdn.net/u012027907 一、设计内容及要求 1.1综述 A.系统概述 我们要做的就是类似QQ这样的面向企业内部的聊天软件,基本功能和QQ类似。首先,系统分为两大部分,第一部分是…

仿微信语音聊天

如上图,是常见的仿微信的聊天程序,实现的效果如上图所示,由于项目太大,本文只讲录音部分。本项目示例代码:https://github.com/xiangzhihong/weixinAudio 主要用到4个核心类: 自定义录音按钮(R…

Android 仿微信实现语音聊天功能

在此感谢鸿洋大神,因为我这是在慕课上看大神的视频做出来的。 代码中我已经添加了很多很多注释,不光是为了大家,也是为了自己能够更加透彻的理解该功能 支持原创,也不算原创了哈哈~ http://blog.csdn.net/lhk147852369/article/…

【Unity人物动画】SALSA With RandomEyes (语音生成嘴型/人物说话) 使用

SALSA使用探索 之前做项目时想实现人物说话的效果,因为我们的语音是AI合成的,有很多片段,如果能根据语音生成嘴部的动画,那将极大便利我们的工作。后面是找到了SALSA的这款插件,并摸索出使用方法。 1 插件介绍 官方网…

仿QQ聊天程序(java)

简易版qq聊天:qq聊天[简易版] (resourcecode.cn) 推荐java最新聊天项目(java仿微信聊天): java 简单仿微信聊天(springboot)_Garry1115的博客-CSDN博客_springboot 模拟微信 转载请标明出处:牟尼的专栏 牟尼的博客_CSDN博客-算法…

LaTeX数学公式输入初级入门

LaTeX最强大的功能就是显示美丽的数学公式,下面我们来看这些公式是怎么实现的。 1、数学公式的前后要加上 $ 或 \( 和 \),比如:$f(x) 3x 7$ 和 \(f(x) 3x 7\) 效果是一样的; 如果用 \[ 和 \],或者使用 $$ 和 $$&a…

《LaTex》LaTex数学公式简介

LaTex数学公式简介 文章目录 一、引用数学公式的方法二、LaTex数学公式的基本代码1. 符号1.1. 常规的数学符号:直接从键盘输入1.2. 任何1.3. 存在1.4. 属于1.5. 小于等于1.6. 大于等于1.7. 约等于1.8. 更多数学符号 2. 希腊字母2.1. 阿尔法2.2. 贝塔2.3. 伽马2.4. 希…