Android回想录之通知栏

通知栏

设置提醒标志符Flags
功能:
提醒标志符,向通知添加声音、闪灯和振动效果等设置达到通知提醒效果,可以组合多个属性
使用方法(其一):
Notification notify = mBuilder.build();
notify.flags = Notification.FLAG_AUTO_CANCEL;//
提醒标志符成员:
Notification.FLAG_SHOW_LIGHTS //三色灯提醒,在使用三色灯提醒时候必须加该标志符
Notification.FLAG_ONGOING_EVENT //发起正在运行事件(活动中)
Notification.FLAG_INSISTENT //让声音、振动无限循环,直到用户响应 (取消或者打开)
Notification.FLAG_ONLY_ALERT_ONCE //发起Notification后,铃声和震动均只执行一次
Notification.FLAG_AUTO_CANCEL //用户单击通知后自动消失
Notification.FLAG_NO_CLEAR //只有全部清除时,Notification才会清除 ,不清楚该通知(QQ的通知无法清除,就是用的这个)
Notification.FLAG_FOREGROUND_SERVICE //表示正在运行的服务
附:
使用方法(其二):
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
PendingIntent pendingIntent= PendingIntent.getActivity(this, 1, new Intent(), flags);
mBuilder.setContentIntent(PendingIntent intent);

向通知添加声音、闪灯和振动效果
功能:
向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性.
可以组合多个属性.
使用方法:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setDefaults(Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND);//不设置这个[响铃,闪灯,震动]都不会执行,而是安静.
对应属性:
Notification.DEFAULT_VIBRATE //添加默认震动提醒 需要 VIBRATE permission
Notification.DEFAULT_SOUND // 添加默认声音提醒
Notification.DEFAULT_LIGHTS// 添加默认三色灯提醒
Notification.DEFAULT_ALL// 添加默认以上3种全部提醒
不设置//这个[响铃,闪灯,震动]都不会执行,而是安静.

设置震动方式
使用方法(其一):
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setVibrate(new long[] {0,300,500,700});
使用方法(其二):
Notification notify = mBuilder.build();
notify.vibrate = new long[] {0,300,500,700};
效果:
延迟0ms,然后振动300ms,在延迟500ms,接着在振动700ms。

三色灯提醒
功能:
android支持三色灯提醒,这个方法就是设置不同场景下的不同颜色的灯。
使用方法(其一):
mBuilder.setLights(0xff0000ff, 300, 0);
使用方法(其二):
Notification notify = mBuilder.build();
notify.flags = Notification.FLAG_SHOW_LIGHTS;
notify.ledARGB = 0xff0000ff;
notify.ledOnMS = 300;
notify.ledOffMS = 300;
描述:
其中ledARGB 表示灯光颜色、 ledOnMS 亮持续时间、ledOffMS 暗的时间。
注意:
1)只有在设置了标志符Flags为Notification.FLAG_SHOW_LIGHTS的时候,才支持三色灯提醒。
2)这边的颜色跟设备有关,不是所有的颜色都可以,要看具体设备。

设置提醒声音
使用方法(其一):
//设置默认铃声
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
//设置自定义铃声
mBuilder.setSound(Uri.parse("file:///sdcard/xx/xx.mp3"));
//获取Android多媒体库内的铃声
mBuilder.setSound(Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "5"));
使用方法(其二):
Notification notify = mBuilder.build();
notify.sound = Uri.parse("file:///sdcard/xx/xx.mp3");

设置优先级
使用方法(其一):
mBuilder.setPriority(int pri);
使用方法(其二):
Notification notify = mBuilder.build();
notify.priority = Notification.PRIORITY_DEFAULT;
可选属性:
Notification.PRIORITY_DEFAULT
Notification.PRIORITY_HIGH
Notification.PRIORITY_LOW
Notification.PRIORITY_MAX
Notification.PRIORITY_MIN

正在进行的通知
使用方法(唯一):
mBuilder.setOngoing(false);
功能:
设置为ture,表示它为一个正在进行的通知。
他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接).

进度条
功能:
设置带进度条的通知,可以在下载中使用.
使用方法(唯一):
mBuilder.setProgress(int max, int progress,boolean indeterminate)

响应[点击,删除,紧急]事件
方法(其一):
//点击
mBuilder.setContentIntent(PendingIntent intent);
//清空
mBuilder.setDeleteIntent(PendingIntent intent);
//响应紧急事件
setFullScreenIntent(PendingIntent intent, boolean highPriority)
方法(其二):
Notification notify = mBuilder.build();
notify.contentIntent:在通知窗口区域,Notification被单击时的响应事件由该intent触发;
notify.deleteIntent:当用户点击全部清除按钮时,响应该清除事件的Intent;
notify.fullScreenIntent:响应紧急状态的全屏事件(例如来电事件),也就是说通知来的时候,跳过在通知区域点击通知这一步,直接执行fullScreenIntent代表的事件。
附:
PendingIntent的位标识符:
FLAG_ONE_SHOT 表示返回的PendingIntent仅能执行一次,执行完后自动取消
FLAG_NO_CREATE 表示如果描述的PendingIntent不存在,并不创建相应的PendingIntent,而是返回NULL
FLAG_CANCEL_CURRENT 表示相应的PendingIntent已经存在,则取消前者,然后创建新的PendingIntent,这个有利于数据保持为最新的,可以用于即时通信的通信场景
FLAG_UPDATE_CURRENT 表示更新的PendingIntent

如何取消掉通知栏上的通知

1.设置对应的flags,让用户点击既被消除:
notification.flags = FLAG_AUTO_CANCEL;
2.通过手动消除某项或则全部通知
mNotificationMgr.cancle(NOTIFICATION_ID);//消除对应ID的通知
mNotificationMgr.cancleAll();//消除创建的所有通知

Android回想录之通知栏

时间: 2024-11-13 17:27:01

Android回想录之通知栏的相关文章

Android回想录

Android系统自带下载管理(DownloadManager) 进度监听 通过内容观察者实现. 完成时的监听通过广播接受者实现. intent.getAction().equals(DownloadManager. ACTION_DOWNLOAD_COMPLETE) bug4.4三星 java.lang.IllegalArgumentException: Unknown URL content://downloads/my_downloads 在[应用管理器]开启[下载管理器] 权限如果设置如

Android实现点击通知栏后,先启动应用再打开目标Activity ,极光推送等推送的也可以参考一下(转)

我因为项目中集成了极光推送,推送的通知栏点开需要确定进入哪个界面就参考了这边文章,感谢作者的无私. 情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity.目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况: app正在运行 app已退出 对于第一种情况,处理

Android实现点击通知栏后,先启动应用再打开目标Activity

情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity.目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况: app正在运行 app已退出 对于第一种情况,处理就非常简单了,直接将参数传入Intent并打开对应的Activity即可. 但第二种情况比较复杂,因

Android实现录屏直播(一)ScreenRecorder的简单分析

应项目需求瞄准了Bilibili的录屏直播功能,基本就仿着做一个吧.研究后发现Bilibili是使用的MediaProjection 与 VirtualDisplay结合实现的,需要 Android 5.0 Lollipop API 21以上的系统才能使用. 其实官方提供的android-ScreenCapture这个Sample中已经有了MediaRecorder的实现与使用方式,还有使用MediaRecorder实现的录制屏幕到本地文件的Demo,从中我们都能了解这些API的使用. 而如果需

管理Android通信录

Android提供了Contacts应用程序来管理联系人,并且Android系统还为联系人管理提供了ContentProvider,这就同意其他应用程序以ContentResolver来管理联系人数据. 关于ContentProvider.ContentResolver和Uri具体解释大家能够參考http://blog.csdn.net/fengyuzhengfan/article/details/37743963.这里就不在过多的陈述了. 先送上实例执行效果图: 在对联系人进行操作之前,先让我

Android开发实现透明通知栏

这个特性是andorid4.4支持的,最少要api19才可以使用,也就是说如果Android的机子是低于4.4,沉浸通知栏是没有效果的.下面介绍一下使用的方法,非常得简单. /**     * 设置通知栏 这个方法在onCreate()实现,如果是在父类的onCreate()中添加,即使所有继承了该父类都会有沉浸通知栏.     */ public void initSystemBar() {        if (Build.VERSION.SDK_INT >= Build.VERSION_C

Android tips(九)-->Android录屏与转化gif图

转载请标明出处:一片枫叶的专栏 最近有同学问我android手机的录屏以及转化成gif图是如何实现的?今天正好就讲讲android的录屏与转化gif操作.整个Android系统的录制与转化GIF图是分为两个部分,录制过程与转化过程,下面就详细的介绍一下这两个部分的具体过程. android手机的录屏操作 android手机也有一些录制屏幕的软件,但是作为程序员还是推荐使用adb 命令实现对屏幕操作的录制操作的,而下面我们就介绍一下实现屏幕录制功能的adb命令:screenrecord. 关于sc

Android录屏命令、Android录Gif、Android录视频

NoHttp开源地址:https://github.com/yanzhenjie/NoHttp NoHttp具体使用文档已公布,你想知道的全都有,请点我移步! 版权声明:转载请注明本文转自严振杰的博客: http://blog.yanzhenjie.com 演示 大家看博客时常常看到以下这样的图片,都非常想知道怎么做的吧,好在自己写博客时也把操作录下来: 这个图是我还有一个博客的图讲Android三级联动和ListView单选多选的,博客和源代码传送门,如今呢就一步步教大家怎么来做这个图. 上方

Android通知栏介绍与适配总结

由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知栏玩法,谷歌也不得不对其进行更新迭代调整,增加新功能的同时,也在不断地改变样式,试图迎合更多人的口味.本文总结了Android通知栏的版本迭代过程,在通知栏开发过程中所遇到的各种各样的坑,以及一些解决技巧,特别的,对于大众期盼的Android 7.0的到来,通知栏又会发生怎样的改变呢?接下来一一进行介绍. Android通知栏发展历史 首先来看一张各个Android版本通知栏消息的全家福