[DESCRIPTION]
目前android信号格默认是4格,如何客制化为5格呢?
由于SystemUI仅仅是根据telephony那边传递过来的信号强度值去决定icon并加以显示,因此要实现这一功能主要要分2步完成:telephony模块和Systemui模块。本部分包含KK,L,M。[SOLUTION]
一,针对L之前的版本修改:
1、修改telephony模块信号处理部分,这部分可以参考:FAQ09157
2、修改Systemui信号显示部分。
SystemUI的资源调用一共有2种方式,运营商定制以及系统默认。二者的差别是图片资源位置不同,获取资源的接口不同。
但都是根据信号强度iconLevel去获取图片资源。
具体可能修改到地方有:(1)、KK以前:NetworkControllerGemini.java(alps\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\policy)KK之后: NetworkController.java (alps\frameworks\base\packages\systemui\src\com\android\systemui\statusbar\policy) private final void updateTelephonySignalStrength(int slotId)……在这个函数里面,大致有tempLastSignalLevel[0] 、iconLevel[0]、tempPhoneSignalIconId[0]这几变量会用到,需要相应的处理如系统默认的资源调用接口为:} else {iconList[0] = TelephonyIconsGemini.getTelephonySignalStrengthIconList(simColorId, false);tempPhoneSignalIconId[0].setResources(null);if (iconLevel[0] < 5) {tempPhoneSignalIconId[0].setIconId(iconList[0][iconLevel[0]]);}}(2) 、根据sim卡属性获取图片资源TelephonyIconsGemini.java alps\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\policypublic static int[] getTelephonySignalStrengthIconList(int simColorId, boolean showSimIndicator) {if (showSimIndicator) {return TELEPHONY_SIGNAL_STRENGTH_WHITE;} else {return TELEPHONY_SIGNAL_STRENGTH[simColorId];}}具体图片资源定义,需要新增图片资源private static final int[] TELEPHONY_SIGNAL_STRENGTH_WHITE = {R.drawable.stat_sys_gemini_signal_0,R.drawable.stat_sys_gemini_signal_1_white,R.drawable.stat_sys_gemini_signal_2_white,R.drawable.stat_sys_gemini_signal_3_white,R.drawable.stat_sys_gemini_signal_4_white };/** Signal level icons for normal. @{ */二,针对L版本和M版本修改:
1、修改telephony模块信号处理部分,这部分可以参考:FAQ09157
2、修改Systemui信号显示部分。
PS:L以后图片采用向量图表示,当然也可以用png图片。根据需求制作信号格的图片, 类型可以为png,分辨率能适应你的设备就行。同时还要修改下面的数组,根据你的需求增加图片。
2.1 TelephonyIcons.java
(alps\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\policy)public class TelephonyIcons {
//***** Signal strength icons
/// M: config for show the ! icon or not @{
//修改状态栏信号格
static final int[] TELEPHONY_SIGNAL_STRENGTH_EXCLAMATION = {
R.drawable.stat_sys_signal_0,
R.drawable.stat_sys_signal_1,
R.drawable.stat_sys_signal_2,
R.drawable.stat_sys_signal_3,
R.drawable.stat_sys_signal_4,
};
static final int[] TELEPHONY_SIGNAL_STRENGTH_FULL = {
R.drawable.stat_sys_signal_0_fully,
R.drawable.stat_sys_signal_1_fully,
R.drawable.stat_sys_signal_2_fully,
R.drawable.stat_sys_signal_3_fully,
R.drawable.stat_sys_signal_4_fully,
};............
//修改下拉状态栏信号格
static final int[] QS_TELEPHONY_SIGNAL_STRENGTH_EXCLAMATION = {
R.drawable.ic_qs_signal_0,
R.drawable.ic_qs_signal_1,
R.drawable.ic_qs_signal_2,
R.drawable.ic_qs_signal_3,
R.drawable.ic_qs_signal_4,
};static final int[] QS_TELEPHONY_SIGNAL_STRENGTH_FULL = {
R.drawable.ic_qs_signal_full_0,
R.drawable.ic_qs_signal_full_1,
R.drawable.ic_qs_signal_full_2,
R.drawable.ic_qs_signal_full_3,
R.drawable.ic_qs_signal_full_4,
};2.2  AccessibilityContentDescriptions .java
(alps\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\policy)这里数组长度要必须和TelephonyIcons 修改的数组长度一致。public class AccessibilityContentDescriptions {private AccessibilityContentDescriptions() {}
static final int[] PHONE_SIGNAL_STRENGTH = {
R.string.accessibility_no_phone,
R.string.accessibility_phone_one_bar,
R.string.accessibility_phone_two_bars,
R.string.accessibility_phone_three_bars,
//比如:如果上面数组长度是6的话,这里也应该修改长度为6
//add
R.string.accessibility_phone_four_bars,
//add end
R.string.accessibility_phone_signal_full
};
PS:该accessibility_phone_four_bars  string 也应该在资源文件定义。

[FAQ11117] 如何把状态栏信号格改为5格相关推荐

  1. android 绘制5格电量,Android 怎么把状态栏信号格改为5格

    Android 如何把状态栏信号格改为5格 前言         欢迎大家我分享和推荐好用的代码段~~声明         欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn. ...

  2. android 绘制5格电量,Android 如何把状态栏信号格改为5格

    前言         欢迎大家我分享和推荐好用的代码段~~声明         欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog ...

  3. Android8.0 SystemUI 状态栏信号图标

    Android 状态栏信号更新架构 状态栏上信号区域在电池图标的左侧包括 vpn,ethernet,wifi,sim,airplane等,该区域对应的View为SignalClusterView,其负 ...

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

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

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

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

  6. Excel 如何让日期单元格随着某个单元格的修改而自动更新日期

    还没有实现,是因为穷,启用宏功能要付费的!目前也不是经常使用excel表格记录或修改数据!只是看到了对应的解答所以先记录下 功能:记录修改时间 当修改 excel 中的某个单元格数据时,位于同行的日期 ...

  7. POI按照源单元格设置目标单元格格式

    原文:http://jjw198874.blog.163.com/blog/static/1889845522011102401854234/ POI按照源单元格设置目标单元格格式 poi按照一个源单 ...

  8. 在excel工作表中c1单元格_已知Excel工作表中A1单元格和B1单元格的值分别为“电子科技大学”、“信息中心”,要求在C1单元格显示“...

    已知Excel工作表中A1单元格和B1单元格的值分别为"电子科技大学"."信息中心",要求在C1单元格显示" 更多相关问题 所谓犯罪现象的特性,是指为 ...

  9. python xlwt单元格合并_Python xlwt写入单元格并合并单元格操作问题,pythonxlwt,我想展示成这样:----...

    Python xlwt写入单元格并合并单元格操作问题,pythonxlwt,我想展示成这样:---- 我想展示成这样:----------------| 名称 |----------------| 1 ...

最新文章

  1. Cnyunwei-Cacti+Nagios安装说明
  2. mysql 提高电脑配置_Mysql配置优化浅谈
  3. Android4.4.2KK竖屏强制更改为横屏的初步简略方案
  4. python数据结构视频百度云盘_数据结构与算法Python视频领课
  5. Chainlink平台预言机
  6. break和continue关键字
  7. check_http语法和选项
  8. 利用python求解节点介数和边介数
  9. Vue获取DOM元素的属性值
  10. (1)、win10 本地 安装 rabbitmq
  11. [转] iOS 开发者应该知道的 ARM 结构(转自apple4us)
  12. 谁能谈谈国外软件行业的实际情况么?(全美“50大好差事” 软件工程师排名第一)...
  13. Markdown | 最具有效率的写作工具一次性掌握
  14. 国外著名大学网络课堂
  15. 用HTML写一个简易的登录界面
  16. 大魔王程序员生成记#01#C语言基础
  17. 丢手帕问题 java_java基于双向环形链表解决丢手帕问题的方法示例
  18. 用html编写诗句春晓,春晓-古诗
  19. 【分享】在小米实习到SP+转正
  20. celery beat一直不触发任务(卡在Writing entries...)

热门文章

  1. C# 实现简易QQ界面
  2. Android入门(一)——结构
  3. linux ssh 超时自动断开连接,ssh超时自动断开连接linux的解决方法
  4. metaRTC6.0 janus推流操作指南
  5. 【校招面试】奇安信 - 测试工程师面经(一面)
  6. Jingsong Zhang
  7. STM32串口DMA接收双缓冲
  8. 4.类中static的作用
  9. java实现子弹弹幕_基于swing开发弹幕播放器
  10. Lua中的userdata