›一、SystemUI 概述
›二、模块基本布局
›三、模块内部框架
›四、模块流程
五、重要文件的介绍
一、SystemUI 概述
1.Statusbar 的功能作用
1.1 状态栏的通知功能(包括时间,通知,系统状态等)
1.2 状态栏的日期显示
2.Statusbar 的使用方法
2.1 notification 的使用
2.2 系统图标的增加删除
* notification 的使用
Notification n = new Notification(); //实例化Notification
n.icon = R.drawable.icon; //设置状态栏显示图标
n.tickerText = "Test Notifaction"; //设置显示提示信息
n.when = System.currentTimeMillis(); //显示时间
n.flags = Notification.FLAG_NO_CLEAR;
n.flags = Notification.FLAG_ONGOING_EVENT;
static final int ID = 1;
NotificationManager nm =(NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);
Intent intent = new Intent(Main.this, Main.class);
PendingIntent pi = PendingIntent.getActivity(Main.this,0, intent, 0);
n.setLatestEventInfo(Main.this, "My Title","My Content", pi);
nm.notify(ID, n); //发出通知
nm.cancel(ID); //取消通知
如何区分“正在进行的”和“通知”,谁决定一个事件是“正在进行的”还是持续的“通知”?
通过设置Notification的flag属性可以设定notification是正在进行的还是持续的notification。FLAG_INSISTENT和FLAG_ONGOING_EVENT标志位可以让Notification成为持续的或正在进行的Notification。
正在进行的事件的通知:
notification.flags =notification.flags | Notification.FLAG_ONGOING_EVENT;
持续的Notification一直重复,直到用户取消:
notification.flags =notification.flags | Notification.FLAG_INSISTENT;
* 系统图标的增加删除
状态栏添加显示的系统图标的步骤
1.frameworks\base\core\res\res\drawalbe中添加系统图标的图片资源
2.frameworks\base\core\res\res\values\config.xml 中添加图片引用,这些 icon 在这个stringarray的位置就决定了其在status bar 上显示的位置了。
3.在 StatusbarPolicy.java 中初始化所增加的系统图标
4.在构造函数中 SetIcon
5.StatusBarPolicy 调用registerReceiver注册了感兴趣的 intent,当感兴趣的 intent 发生时,对图标进行更新
6..添加图标更新函数
删除时删除相关代码图片即可
二、模块基本布局
1.Statu