在状态栏增加图标(Android 6.0)

在Android 启动之后,在SystemServer.java的run方法中,调用了StatusBarManagerService的构造方法,在StatusBarManagerService的构造方法中,加载了系统预置的所有icon,路径在:/framework/base/core/res/res/values/config.xml中 mIcons.defineSlots(res.getStringArray(com.android.internal.R.array.config_statusBarIcons));。

如上述所示,在状态栏增加图标,首先要在/framework/base/core/res/res/values/config.xml的config_statusBarIcons中加入自己的字段,此处选择的例子,是我在gm公司所做的人脸识别图标。

    <string-array name="config_statusBarIcons">
       <item><xliff:g id="id">hotspot</xliff:g></item>
       <item><xliff:g id="id">location</xliff:g></item>
       <item><xliff:g id="id">bluetooth</xliff:g></item>
       ......
       <item><xliff:g id="id">secure</xliff:g></item>
       <item><xliff:g id="id">clock</xliff:g></item>
        <item><xliff:g id="id">face_verify</xliff:g></item>
    </string-array>

然后在PhoneStatusBarPolicy中定义这个字段:

private static final String SLOT_FACE_VERIFY = "face_verify";
代码路径:frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarPolicy.java

然后在该类的构造方法中,将图标设置进去,此处可以默认不可见(根据交互)
mService.setIcon(SLOT_FACE_VERIFY, R.drawable.ic_statusbar_facecode, 0, null);
mService.setIconVisibility(SLOT_FACE_VERIFY, false);

对于该图标可见性的控制,是通过广播判断的。自然是针对于人脸识别这一情况,识别service bind,发送开始识别广播,onbind时,发送结束识别广播。发送广播的代码就不写了。

            else if (action.equals(ACTION_START_FACE_VERITY)) {
                mService.setIconVisibility(SLOT_FACE_VERIFY, true);
            } else if (action.equals(ACTION_STOP_FACE_VERITY)) {
                mService.setIconVisibility(SLOT_FACE_VERIFY, false);
            }

超级简单的!当然,这个是只针对于系统图标,对于信号图标等,在SignalClusterView.里。

存下http://blog.csdn.net/yihongyuelan/article/details/7710584这篇好文章。虽然很老了,但是对于状态栏的理解,非常有收获。

时间: 2024-12-06 17:41:37

在状态栏增加图标(Android 6.0)的相关文章

Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)

方法一 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏状态栏 getWindow().setFlags(WindowManager.La

Android 5.0 API

Android 5.0 API 在本文档中展开 更新目标 API 级别 重要的行为变更 界面 通知 图形 媒体 存储 无线和连接 Project Volta Android 在办公和教育中的应用 系统 打印框架 测试和辅助功能 IME 清单声明 API Differences API level 20 to 21 ? L Developer Preview to 21 ? See Also Android 5.0 Behavior Changes Android Lollipop Highlig

Android 7.0 Nougat(牛轧糖)---对开发者来说

android 7.0出来了.让你的app准备迎接最新的android版本吧,支持节省电量和内存,这样新的系统行为.使用多窗口UI.直接恢复通知以及其他操作来扩展你的app. android 7.0介绍了各种各样的新功能给用户和开发者, 本文重点介绍面向开发者的一些新功能. 确保检查android 7.0的行为变化,了解有关平台的变化可能会影响你的app. 如果要了解更多的关于用户的新功能,请查看www.android.com. 1.支持多窗口 在android 7.0中,我们介绍了在支持多窗口

开发者必看|Android 8.0 新特性及开发指南

背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0.谷歌在今年3 月21日发布 Android 新系统开发者预览版时已给新系统取名为 Android O.自2008 年发布以来, Android 依靠 Google 的生态运作,全球市场份额在2016年底已超过85% .而近几年依靠 Android 发展起来的智能手机厂商不断增加, Android 生态大家庭也正在不断壮大. Androi

Android 4.0 ICS SystemUI浅析——StatusBar结构分析

Android 4.0 ICS SystemUI浅析——StatusBar结构分析 分类: Android2012-06-30 14:45 23687人阅读 评论(8) 收藏 举报 androidsignal代码分析iconseclipse平台 在上一篇文章<Android 4.0 ICS SystemUI浅析——SystemUI启动流程>中以及提到了SystemUI的组成,本文主要分析其中的StatusBar结构. 1.布局概览 首先,我们通过hierarchyviewer这个工具来查看一下

【译】Android 7.0 for Developers

译者注: 译者:aroundme 原文地址:https://developer.android.com/about/versions/nougat/android-7.0.html 主要是介绍Android 7.0提供新特性. 翻译的动机主要是为了适配Android 7.0,提前踩点.防止大坑. 就翻译来看,除去一些可有可无的更新之外,关注点主要是集中在四点: * 通知栏一系列更新 * 对于应用后台优化(或者说限制) * WebView持续性更新(混合开发需要注意) * 对于GPU的优化,优化3

Android 5.0以上heads up通知

适用Android系统: 1) Android版本>= 5.0 2) 部分ROM是不支持 RemoteViews view=getRemoteViews(body,title, R.mipmap.ic_report_problem_red_24px, 0, date); if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.L){ notification.headsUpContentView=view; notification.vibrate= new

解决Android 5.0 (移动网络待机)耗电问题

1. 耗电原因 Android 5.0 增加判断网络状态的特性, 判断原理是测试链接google的一个网址. 但是google被墙了, 所以就会造成移动网络频繁的测试链接, 并且网络图标上面的那个感叹号. 详细请参考:http://blog.csdn.net/matrix_laboratory/article/details/43271473 2. 解决方法 修改测试链接网址: <code style="word-wrap: break-word; font-family: monospa

android 5.0新特性

Android Lollipop 面向开发者的主要功能 Material Design 设计 注重性能 通知 以大屏幕呈现 以文档为中心 连接性能再上一级 高性能图形 音频处理功能更强 摄像头和视频处理进一步完善 Android 在办公中的应用 屏幕截图和共享 新型传感器 Chromium WebView 辅助功能和输入 构建低电耗应用 欢迎使用 Android 5.0 Lollipop,这是迄今为止规模最大最为雄心勃勃的 Android 版本! 此版本为用户推出了各种崭新的新功能,为开发者则提