Android 5.0状态栏通知图标的实现
我之前的博客文章中有一片是介绍了关于Android5.0 下拉通知栏快捷开关的添加,文章牵扯到一个知识点就是Android 5.0状态栏通知图标的实现。那么今天就简单的介绍一下这个功能是如何实现的。
想要了解我之前相关的博客可以打开:
Android5.0 下拉通知栏快捷开关的添加(必看)

Android 5.0状态栏通知图标的实现,说简单点也就是利用广播,然后在SystemUi相关的地方处理就行了。我们这里暂且就之前的博客内容为例:
首先:我们需要在打开和关闭FM的地方发送广播

if(on) {//FM打开Log.i("lyj_redio","power is on");Settings.System.putInt(MainActivity.this.getContentResolver(), Settings.System.FM_SYSTEMUI, 0);mFMTxService.powerOn();//M:lyj 发送广播Intent intent = new Intent("fm_send");intent.putExtra("state", true);MainActivity.this.sendBroadcast(intent);}
else {//FM关闭Settings.System.putInt(MainActivity.this.getContentResolver(), Settings.System.FM_SYSTEMUI, 1);mFMTxService.powerOff();Intent intent = new Intent("fm_send");intent.putExtra("state", false);MainActivity.this.sendBroadcast(intent);}

发送广播的地方处理了,接下来就是在SystemUi中接收广播了。
打开如下路径:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarPolicy.java
在这个java文件里首先定义一个String值

private static final String SLOT_FM_SEND = "fm_send"; 

然后注册,监听广播还有实现图片显示:

//注册广播private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();....if(action.equals(SLOT_FM_SEND)) {updateFmSend(intent);}....}};
//状态栏图片的处理private final void updateFmSend(Intent intent) {boolean state = intent.getBooleanExtra("state", true);Log.i("lyj_system", "FMstate = "+state);if (state) {//开关打开的情况下mService.setIcon(SLOT_FM_SEND, R.drawable.stat_sys_headset_with_mic, 0, null);//打开FM图标mService.setIconVisibility(SLOT_FM_SEND, true);}else {mService.setIconVisibility(SLOT_FM_SEND, false);}}
//监听广播public PhoneStatusBarPolicy(Context context, CastController cast, HotspotController hotspot) {mContext = context;mCast = cast;mHotspot = hotspot;mService = (StatusBarManager)context.getSystemService(Context.STATUS_BAR_SERVICE);// listen for broadcastsIntentFilter filter = new IntentFilter();//M:lyj add filter.addAction(SLOT_FM_SEND);....}

这里看一下updateFmSend 这个方法,主要就是判断广播过来的State的值。代码很简单,状态值为true就打开图标,否则关闭图标。
OK!结合之前的博客文章看,相信会对你有所帮助。

Android 5.0状态栏通知图标的实现相关推荐

  1. Android 6.0 状态栏信号图标分析

    先来一张状态栏的分区图.今天要分析的是信号显示这一小块,就是图中的signal_cluster,对应源码中的View就是SignalClusterView. 这是一个自定义View,我们看一下他的定义 ...

  2. 解决Android高版本状态栏通知图标白底问题

    最近临时转换角色修改Android系统源码,没有搞过一看源码一脸懵逼,代码太多了,关键是无法跟studio一样直接进行代码调转,折腾了一天才找到这个问题要修改的地方,其实就是Google为了规范统一和 ...

  3. Android 10 状态栏通知图标和下拉状态栏图标为白色问题

    前言 安装第三方应用,会在状态栏上面和下拉状态栏通知图标显示白色 原因 因为google在android5.0上面做了限制,为了统一系统风格.之后的状态栏icon就不能够随便用一张色彩丰富的图片了,只 ...

  4. android设置状态栏字体颜色vivo,状态栏通知图标颜色统一_vivo Xplay3S_手机Android频道-中关村在线...

    顶部状态栏是用来显示消息和程序通知的地方,在之前1.0版本中,信号.时间.电量.wifi以及蓝牙等这些图标都是以白色来显示,而其他通知则会以起自身的图标颜色来显示,这样会使得顶部状态在色彩上显得很杂乱 ...

  5. android 11.0 状态栏通知栏的图标为白色解决方案

    1.概述 在11.0进行定制化开发中,对SystemUI的相关问题解决也是相当多的 ,最近在测试中发现app弹出的通知 在状态栏显示为白色,从而看不清通知的原来图标,而显示不了正常的背景色,这就跟状态 ...

  6. android灰字体什么意思,Android 6.0状态栏使用灰色文字和图标

    Android StatusBar中的字体和图标默认都是白色的,但是Android在6.0之前是没有办法更改这个颜色, 在Android 6.0中提供了一个SYSTEM_UI_FLAG_LIGHT_S ...

  7. Android 8.0 状态栏信号显示、信号定制

    之前发了下拉通知栏开关修改的一篇文章. 这篇文章呢,主要介绍一下Android状态栏信号图标显示的流程. 便于在Android源生上开发的碰到问题的朋友,希望能对读者有所帮助.内容可能比较长 首先还是 ...

  8. 浅析Android 4.0的通知系统(附Android 4.0设计指南全文翻译)

    通过手机的通知系统,可以将应用程序的一些重要消息告知给用户.流畅.舒适.友好的应用程序离不开精心设计的消息提醒机制.但是并不是所有的通知都是用户想看的,否则只会给用户造成骚扰,所以要谨慎使用通知. 在 ...

  9. android 5.0状态栏下载地址,Android沉浸式状态栏(5.0以上系统)

    Android沉浸式状态栏(5.0以上系统) 沉浸式状态栏可以分为两种: 1.直接给状态栏设置颜色 (如下图:) 这里写图片描述 java代码形式: if (Build.VERSION.SDK_INT ...

最新文章

  1. 批着DDD,实则是以数据库为中心------数据库已死
  2. 友情链接交换看的不是“真友情”!
  3. windows的.bat批处理文件运行Python脚本程序
  4. 【函数】02、函数进阶
  5. Python学习笔记:输入和输出
  6. Python应用实战-pandas绘制图形
  7. CMD命令之BAT脚本语法详解
  8. Back to back销售订单和drop ship第三方销售订单的销售成本的问题
  9. db2 常用命令(一)
  10. netstat 命令 与 ps 命令
  11. Mybatis # 和 $ 的区别
  12. Fiddler2中文乱码问题
  13. category ue 协议_LTE中UE能力(UE Capability)的梳理和解析
  14. 基于局部平面拟合的法向估计
  15. C语言中-条件编译#ifdef的妙用详解_透彻
  16. [业界新闻] 网络多媒体老大Macromedia被Adobe收购!
  17. 白手起家成就亿万富翁梦想的企业家和普通人的10点不同之处
  18. GO WEB IRIS入门 安装iris
  19. Elasticsearch 分片管理解析
  20. 7-4 接话茬 (20分)

热门文章

  1. 阿里天池—2022江苏气象预测AI算法挑战赛
  2. 什么软件可以测试家里的宽带,技术贴 | 如何简单又专业的测试自己家的网速是否达标...
  3. 阿里云acp证书有用吗?阿里云acp证书考试内容有哪些?
  4. 快捷键没有响应的处理办法
  5. uniapp小程序展示3D模型
  6. 如何解决 类似 nltk安装Wordnet出错[nltk_data] Error loading wordnet: <urlopen error [Errno 111] 问题
  7. 面试官:如何用最少的老鼠试出有毒的牛奶?
  8. 中国防篡改封条市场深度研究分析报告
  9. 红黑树和二叉树有什么区别?
  10. HashMap什么时候出现红黑树