当前位置: 东星资源网 > 作文大全 > 通知 > 正文

安卓设置通知

时间:2017-05-31 来源:东星资源网 本文已影响 手机版

篇一:Android-通知

android Notification 的使用

最近一直在研究 android ,并一边研究一边做应用。其中遇到了把程序通知常驻在

Notification 栏,并且不能被 clear 掉(就像android QQ一样)的问题。经过研究实现了其功能,现把 Notification 的使用总结如下:

Notification 的使用需要导入 3 个类

代码示例及说明

下面依次对每一段代码进行分析:

创建 NotificationManager,其中创建的 nm 对象负责“发出

”与“取消” Notification。 创建 Notification ,参数依次为:icon的资源

id,在状态栏上展示的滚动信息,时间。其中创建的 n 对象用来描述出现在系统通知栏的信息,之后我们将会看到会在 n 对象上设置点击此条通知发出的Intent。

设置 n.flags 为 Notification.FLAG_AUTO_CANCEL ,该标志表示当用户点击 Clear 之后,能够清除该通知。

?

创建一个Intent,该Intent使得当用户点击该通知后发出这个Intent

请注意,如果要以该Intent启动一个Activity,一定要设置

Intent.FLAG_ACTIVITY_NEW_TASK 标记。

Intent.FLAG_ACTIVITY_CLEAR_TOP :如果在当前Task中,有要启动的Activity,那么把该Acitivity之前的所有Activity都关掉,并把此Activity置前以避免创建Activity的实例 Intent.FLAG_ACTIVITY_NEW_TASK :系统会检查当前所有已创建的Task中是否有该要启动的Activity的Task,若有,则在该Task上创建Activity,若没有则新建具有该Activity属性的Task,并在该新建的Task上创建Activity。更多请参见 “ (转载)Android下Affinities和Task ”

PendingIntent 为Intent的包装,这里是启动Intent的描述,PendingIntent.getActivity 返回的PendingIntent表示,此PendingIntent实例中的Intent是用于启动 Activity 的Intent。PendingIntent.getActivity的参数依次为:Context,发送者的请求码(可以填0),用于系统发送的Intent,标志位。

其中 PendingIntent.FLAG_UPDATE_CURRENT 表示如果该描述的PendingIntent已存在,则改变已存在的PendingIntent的Extra数据为新的PendingIntent的Extra数据。 这里再简要说一下 Intent 与 PendingIntent 的区别:

Intent :意图,即告诉系统我要干什么,然后系统根据这个Intent做对应的事。如startActivity相当于发送消息,而Intent是消息的内容。

PendingIntent :包装Intent,Intent 是我们直接使用 startActivity , startService 或 sendBroadcast 启动某项工作的意图。而某些时候,我们并不能直接调用startActivity , startServide 或 sendBroadcast ,而是当程序或系统达到某一条件才发送Intent。如这里的Notification,当用户点击Notification之后,由系统发出一条Activity 的 Intent 。因此如果我们不用某种方法来告诉系统的话,系统是不知道是使用 startActivity ,startService 还是 sendBroadcast 来启动Intent 的(当然还有其他的“描述”),因此这里便需要PendingIntent。

设置显示在通知下拉框中的信息,参数依次为:Context,标题,内容,PendingIntent。 启动Notification,参数依次为:在你的程序中标识Notification的id值(用来区分同一程序中的不同Notifycation,如果程序中只有一个Notification那么这里随便你填什么都可以,不过类型必须要为int),要通知的Notification。

如何使自己的Notification像Android QQ一样能出现在 “正在运行的”栏目下面

其实很简单,只需设置Notification.flags = Notification.FLAG_ONGOING_EVENT;便可以了。

如何改变 Notification 在“正在运行的”栏目下面的布局

创建 RemoteViews 并赋给

Notification.contentView ,再把 PendingIntent 赋给 Notification.contentIntent 便可以了,如:

注意,如果使用了contentView,那么便不要使用Notification.setLatestEventInfo。如果setLatestEventInfo在赋给 Notification.contentView 的代码之后,那么contentView的效果将被覆盖,显示的便是 setLatestEventInfo 的效果;如果 setLatestEventInfo 在

Notification.contentView 的代码之前,那么显示的便是 Notification.contentView 的效果,也就是说不管你想要setLatestEventInfo 或 contentView 的自定义效果,请保证始终只有一句设置代码,因为在最后一句绑定的时候,之前的设置contentView或setLatestEventInfo的代码都是完全没有必要的。

1. package cn.com.chenzheng_java;

篇二:Android手机通知栏时间、日期、通知颜色修改教程

Android手机通知栏时间、日期、通知颜色修改教程

一、先修改时间颜色

时间颜色代码在/system/framework/severce.jar里面的classes.dex文件内,classes.dex必须先解包,也就是反翻译才能编辑。 具体步骤:

1、首先确保电脑上安装了JDK,就是JAVA的开发环境,在各软件站都能找到!

2、下载附件1:smali.rar并解压,这个是用来解包和打包classes.dex文件的。

3、从MS中将severce.jar文件提取出来,修改前记得备份,用RAR打开severce.jar,将classes.dex提取出

来,放在smali.rar解压后的文件夹内。

4、需要用CMD操作,smali.rar文件夹内的解包批处理好像不能用,只能用自己动手了。运行CMD,用CD命令进入smali文件夹,输入 java -jar baksmali.jar classes.dex -o classes,回车。稍等一会将完成解包,解包后文件夹内出现classes文件夹

5、找到这个文件

\classes\com\android\server\status\statusbaricon.smali

6、用记事本打开该文件找到 const V6, -0X100,修改为const v6, -0x1后保存,时间颜色由黑

色修改为白色。

7、修改完成后运行smali文件夹内的“打包.bat”会自动生成新的

classes.dex,替换回severce.jar内。

8、将services.jar拷贝到/system下,用Root Explorer更改权限,所有勾勾都要打上!要不无限重启。

9、将修改权限后的services.jar覆盖到手机上/system/framework/下,重启手机。

二、修改日期颜色

1、前4步跟修改时间颜色一样!

2、打开classes\com\android\server\status\,编辑

StatusBarService.smali,找到.line276,加入分割线内代码。 .line 276

const v7, 0x1020059

invoke-virtual ,

Lcom/android/server/status/StatusBarView;->findViewById(I)Landroid/view/View;

move-result-object v7

check-cast v7, Lcom/android/server/status/DateView;

---------------------------------------------------------------------------------------------------------------

const v8, -0x1

invoke-virtual , Landroid/widget/TextView;->setTextColor

------------

安卓设置通知

---------------------------------------------------------------------------------------------------

3、日期已由黑色修改为白色了,运行smali文件夹内的“打包.bat”会自动生成新的classes.dex,替换回severce.jar内即可。

4、将services.jar拷贝到/system下,用Root Explorer更改权限,所有勾勾都要打上!要不无限重启。

5、将修改权限后的services.jar覆盖到手机上/system/framework/下,重启手机。

三、修改通知字体颜色,

通知字体颜色代码分别由/system/framework/framework-res.apk内的3个文件控制

1、拷贝framework-res.apk,用RAR解压,提取\res\layout文件夹下的

status_bar_latest_event_content.xml(第一处控制通知标题、第二处控制通知内容颜色

status_bar_expanded.xml(控制状态栏下面那一行字体,就是中国移动那一行)

status_bar.xml(控制状态栏上字体颜色)

2、用16进制文件编辑器(推荐用Uedit32)打开,搜索16进制的08 00 00 1C ,08 00 00 1C后面四位字符,比如00 00 00 FF(黑色)就是颜色代码

3、可以改为你需要的颜色,需要注意的是,四位代码的含义是Blue、Green、 Red、 Alpha,Alpha值为FF,一般不用动。将00 00 00 FF(黑色)改为FF FF FF FF(白色),

4、用RAR打开framework-res.apk文件,将修改后的文件拖回之。

5、将framework-res.apk拷贝到/system下,用Root Explorer更改权限,所有勾勾都要打上!要不无限重启.

6、将修改权限后的framework-res.apk覆盖到手机上

/system/framework/下,重启手机。

工具. 打包.rar(245 Bytes, 下载次数: 31)

解包.rar(247 Bytes, 下载次数: 26)

baksmali&smali.rar(2.66 MB, 下载次数: 413)

篇三:Android成长日记-Noification实现状态栏通知

Android成长日记-Noification实现状态栏通知

Notification可以作为状态栏的通知,实现这个效果需要使用NotificationManager实现控制类,才能实现对这个效果的显示 下面是实现状态栏显示效果的通知:

1. 首先在Layout建立两个Button,一个用于实现显示

Notification,一个用于取消Notification

2. 书写Java代码

private void sendNotification(){

Intent intent = new Intent(this,MainActivity.class);

PendingIntent pintent = PendingIntent.getActivity(this, 0, intent, 0);Builder builder = new Notification.Builder(this);

builder.setSmallIcon(R.drawable.ic_launcher);//设置图标

builder.setTicker("hello");//手机状态栏的提示;

builder.setWhen(System.currentTimeMillis());//设置时间

builder.setContentTitle("通知栏通知");//设置标题

builder.setContentText("我来自NotificationDemo");//设置通知内容builder.setContentIntent(pintent);//点击后的意图

// builder.setDefaults(Notification.DEFAULT_SOUND);//设置提示声音 // builder.setDefaults(Notification.DEFAULT_LIGHTS);//设置指示灯 // builder.setDefaults(Notification.DEFAULT_VIBRATE);//设置震动builder.setDefaults(Notification.DEFAULT_ALL);//设置震动Notification notification = builder.build();//4.1以上

//builder.getNotification();

manager.notify(notification_ID, notification);

}

Ps:

------------------------------------------------------------------------------------- 在创建前明确导入的包

标签:设置 通知 安卓设置通知栏颜色 安卓6通知设置