android 9.0打开wifi,Android9.0 SystemUI 屏蔽打开wifi时不显示4G图标的逻辑
Android 9.0 中打开wifi时,不显示4G图标,只有信号值,现项目需求在打开wifi时仍然显示4G图标。
排查及修改过程如下:
systemui/src/com/android/systemui/statusbar/StatusBarMobileView.java
private void updateState(MobileIconState state) {
//省略部分代码
if (mState.typeId != state.typeId) {
if (state.typeId != 0) {
if (!mStatusBarExt.disableHostFunction()) {
mMobileType.setContentDescription(state.typeContentDescription);
mMobileType.setImageResource(state.typeId);
}
mMobileType.setVisibility(View.VISIBLE);
} else {
mMobileType.setVisibility(View.GONE);
}
}
//省略部分代码
}
由此可见当state.typeId=0时,会隐藏mobile_type图标,往上追溯,谁调用了updateState()方法:
public void applyMobileState(MobileIconState state) {
//省略部分代码
if (!mState.equals(state)) {
updateState(state.copy());
}
}
一步一步查看调用关系,追溯到
systemui/src/com/android/systemui/statusbar/policy/MobileSignalController.java的notifyListeners()方法:
@Override
public void notifyListeners(SignalCallback callback) {
//省略部分代码
// Show icon in QS when we are connected or data is disabled.
boolean showDataIcon = mCurrentState.dataConnected || dataDisabled;
//省略部分代码
showDataIcon &= mCurrentState.isDefault || dataDisabled;
int typeIcon = (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.mDataType : 0;
//省略部分代码
callback.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, networkIcon, volteIcon,
qsTypeIcon,activityIn, activityOut, dataContentDescription, description,
icons.mIsWide, mSubscriptionInfo.getSubscriptionId(), mCurrentState.roaming,
mCurrentState.isDefaultData);
//省略部分代码
}
代码中有个配置:
mConfig.alwaysShowDataRatIcon
跟进去到NetworkControllerImpl.java的内部类Config:
@VisibleForTesting
public static class Config {
public boolean showAtLeast3G = false;
public boolean alwaysShowCdmaRssi = false;
public boolean show4gForLte = false;
public boolean hideLtePlus = false;
public boolean hspaDataDistinguishable;
public boolean inflateSignalStrengths = false;
public boolean alwaysShowDataRatIcon = false;
static Config readConfig(Context context) {
Config config = new Config();
//省略部分代码
CarrierConfigManager configMgr = (CarrierConfigManager)
context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
PersistableBundle b = configMgr.getConfig();
if (b != null) {
config.alwaysShowDataRatIcon = b.getBoolean(
CarrierConfigManager.KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL);
}
return config;
}
}
然后跟踪到framework代码CarrierConfigManager.java中:
/**
* Boolean indicating if show data RAT icon on status bar even when data is disabled
* @hide
*/
public static final String KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL =
"always_show_data_rat_icon_bool";
//默认值给的false
sDefaults.putBoolean(KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL, false);
所以修改策略为将此默认值改为true.
另外可以用命令
adb shell dumpsys carrier_config
查看配置信息,配置信息如图:
图片.png
android 9.0打开wifi,Android9.0 SystemUI 屏蔽打开wifi时不显示4G图标的逻辑相关推荐
- Android 双目 单usb,【android9.0】无法打开usb uvc camera
背景:android9.0系统的开发板,接入双目摄像头,仅能打开其中一路摄像头,另一路打不开 关键log: 从串口打印看,usb驱动有正确识别到usb hub以及两路usb camera设备 [ 45 ...
- android sdk 9.0下载地址,Android9.0对非 SDK 接口的限制
Android9.0对非 SDK 接口的限制 发布时间:2018-10-19 12:00, 浏览次数:919 , 标签: Android SDK 在 Android 9.0 版本中,谷歌加入了非 SD ...
- oppo手机彩蛋android 9.0,论升级Android9.0的速度,vivo完胜OPPO
原标题:论升级Android9.0的速度,vivo完胜OPPO 集微网消息(文/数码控),在OPPO.vivo这两大手机厂商之间,要说升级Android9.0操作系统的速度,从目前已知的消息看,是vi ...
- Android rom开发:mtk android9.0 开放预置app权限
适用于mtk android 9.0 diff --git a/frameworks/base/services/core/java/com/android/server/pm/permission/ ...
- android 9.0 https 适配,android9.0适配HTTPS:not permitted by network security policy'
express框架 一.express的使用 安装express 在根目录下输入 npm install express 引入express的包 const express = require(&qu ...
- android9.0蓝牙功能,Android9.0 蓝牙开启流程
微信扫码,给个关注吧 第一次接触蓝牙,先从蓝牙的开启流程入手吧,借此顺便熟悉一下蓝牙的代码架构. 1.UI /packages/apps/Settings/src/com/android/settin ...
- android poi webview,java-Android(4.4)WebView第二次加载时不显示ifra...
我正在尝试从本地存储在webview页面中显示,第一次加载页面时看起来还可以,但是当我删除webview并再次添加它时,它看起来像在图片上(对于4.4,在以前的android版本中只是黑屏): web ...
- MTK Android O 充电状态下电池电量100%时不显示闪电图标
需求: android 8.1.1版本google原生充电的时候都会显示一个闪电的形状,客户要求在百分之百电量的时候不显示闪电 修改: frameworks\base\packages\Setting ...
- Android之通过用户名和密码连接指定wifi热点(兼容Android9.0和Android10.0和addNetwork(wifiNewConfiguration)返回-1问题)
1 需求 通过用户名和密码连接指定wifi热点,网上的代码乱七八糟,没几个可以用,我这边整理了下,测试了华为Android9.0和小米Android9.0和10.0和OPPO Android9.0 都 ...
最新文章
- UI组件之AdapterView及其子类(五)ListView组件和ListActivity
- 用matlab做一个有刻度的网格,已知45个点X Y Z的坐标值已知,如何用matlab画出网格图,另外每个小方格里带颜色 - 程序语言 - 小木虫 - 学术 科研 互动社区...
- python中去除字符串中首尾空格的函数_Python中去除字符串首尾特定字符的函数:strip()...
- JQ实现情人节表白程序
- java中的局部变量、成员变量、类变量
- [精华] VI高级命令集锦
- TP5 急速上手 语法规则
- 用@Scheduled完成定时任务
- C# 关键字--using
- poj3579 Median
- 调试神器SEGGER_RTT移植使用
- unicode 表情对照表
- 计算机网络——谢希仁
- 商品评论情感分析——基于商品评论建立的产品综合评价模型(1)
- linux shell 中数组的定义和for循环遍历
- 如何看待中科院合肥研究院 90 多名科研人员集体辞职?
- 【Python入门】人生苦短,我用Python
- java lambda 画蛇添足_技术史上的画蛇添足: Redis HGETALL 排序问题
- RPG角色扮演C++
- 计算机系统设计原理pdf百度云,计算机操作系统教程--核心与设计原理习题1答案.pdf...
热门文章
- Checkbox与RadioGroup的使用方法
- .Net Micro Framework研究—让MF支持鼠标
- 非root用户安装protobuf的python依赖到指定目录
- 1356. 根据数字二进制下 1 的数目排序
- docker image设置jdk版本_Docker 部署 Spring Boot
- 微信语音麦克风静音_智能语音专题(二):语音信号处理
- c语言编译为机器语言过程,C语言编译全过程
- 微服务乱码_本地正常服务器乱码
- java objective-c,Objective-C基础教程学习笔记(附录)从Java转向Objective-C
- 企业微信接收消息服务器配置php,微信企业号配置及在公众号里获取用户信息