Mr.Alright---Android 11 mtk平台,桌面google日历名称不跟随系统语言变化
问题:桌面google日历名称不跟随系统语言变化
分析:
- 碰到google的apk,一般先确认是不是apk的问题
- 然后看是不是平台的问题
- 都不是的话再根据现象分析
1.先看第一步,launcher的所有其他apk都会变化,只有google日历不跟随系统语言变化,先把Google 日历的apk pull出来装到自己的手机上,
adb shell pm path com.google.android.calendar 看下apk在那个路径,然后adb pull出来装到小米9,发现日历应用工作正常,说明apk没问题
2.然后我准备用drive only版本测试,是不是平台问题,后面一想是的话,给平台处理又要等他好久,于是就没验证
3. 既然不打算验证平台问题,那么就自己分析吧。
- 脑子里大概有个思路,就是在launcher.java 的onConfigurationChanged里面监听语言变化处理,然后我发现语言变化并不会调用到launcher的这个方法;
- 就想着通过收听语言变化的广播来处理,android.intent.action.LOCALE_CHANGED,但是在Launcher里找了半天没发现更新名称的逻辑
- 于是就想到了alps\packages\apps\Launcher3\src\com\android\launcher3\BubbleTextView.java,Launcher上的图标都是这东西展示的,然后这个类里搜索了下setText()的方法,发现只有一个地方调用,就是下面展示的地方,找到之后,我们只需要判断是google 日历的时候,获取他的apk名字,然后再setText()就可以了
private void applyIconAndLabel(ItemInfoWithIcon info) {FastBitmapDrawable iconDrawable = newIcon(getContext(), info);mDotParams.color = IconPalette.getMutedColor(info.bitmap.color, 0.54f);setIcon(iconDrawable);setText(info.title);// Add by HZH on 2020/12/3 startif (info instanceof WorkspaceItemInfo) {ComponentName cn = new ComponentName("com.google.android.calendar","com.android.calendar.event.LaunchInfoActivity");if (cn.equals(((WorkspaceItemInfo) info).getTargetComponent())) {try {PackageManager packageManager = getContext().getPackageManager();ActivityInfo activityInfo = packageManager.getActivityInfo(cn, 0);CharSequence googleCalender = activityInfo.loadLabel(packageManager);setText(googleCalender);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}}// Add by HZH on 2020/12/3 endif (info.contentDescription != null) {setContentDescription(info.isDisabled()? getContext().getString(R.string.disabled_app_label, info.contentDescription): info.contentDescription);}}
经验证,问题解决,并且比其他apk切换语言更快
Mr.Alright---Android 11 mtk平台,桌面google日历名称不跟随系统语言变化相关推荐
- android 11 移除桌面搜索栏
android 11 移除桌面搜索栏 桌面搜素栏属于桌面小组件wiget,简称QSB,默认在桌面launcher3初始化时加载,去掉的方法直接在launcer3中添加逻辑,在初始化时不加载视图,修改点 ...
- Android 监听系统语言变化
** 监听系统语言变化 ** 监听系统语言变化 首先先创建一个MyApplication继承Application public class MyApplication extends Applica ...
- Android Q MTK平台开关机铃声
google 默认开机动画代码在framework/base/cmds/bootanimation MTK 开机动画代码在vendor/mediatek/proprietary/operator/fr ...
- Android非mtk平台T9的实现
开发MTK平台的机器一般比较幸福,非常友好的支持(对比国外大厂),N多国内运营商的功能支持早有实现,比如T9.但是开发高大上的高通咋办?木有T9啊.不过目前有多种方案可选则. 实现mtk的sqlite ...
- MTK 平台获取IMSI号码 以及如何截获系统中的各种消息
MTK平台 获取本机的SIM卡中IMSI号 公司MTK平台做开发,老板要求在MTK的代码上获得本机上SIM卡的手机号码,查了很多资料后,结果是无法获得,原因是手机号码不是直接存储在SIM卡的,而是信号 ...
- 华为 android 11,Android 11发布,华为正式官宣,新系统更值得期待!
谷歌在近日发布了新版Android 11操作系统的正式版本,早在今年的2月份,谷歌就公布了Android 11 DP1的开发者预览版.供应给部分手机厂商以及开发者进行调试工作,先后经历了三次调测之后. ...
- 安卓11 MTK平台 在明亮环境下拍摄黑暗物体,自动启动闪光灯
文件路径:/vendor/mediatek/proprietary/custom/mtxx(平台)/hal/imgsensor/相机名/camera_AE_PLineTable_xxxx.h 修改相机 ...
- Android8.1 MTK平台 修改蓝牙默认名称
8.1 的默认蓝牙名称为 Android Bluedroid 通过搜索你会找到如下文件 device/generic/common/bluetooth/bdroid_buildcfg.h #ifnde ...
- android应用开发实验报告_聚焦 Android 11: Android 11 应用兼容性
作者 / Android 产品经理 Diana Wong在往期 #11WeeksOfAndroid 系列文章中我们介绍了联系人和身份.隐私和安全,本期将聚焦 Android 11 兼容性.我们将为大家 ...
最新文章
- 【特别好】【位运算】maximum-xor-of-two-numbers-in-an-array
- springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
- 互联网晚报 | 2月17日 星期四 | 小鹏汽车回应总裁年薪超4亿;B站将上线开播前人脸认证功能;星巴克再次涨价...
- 【Flink on k8s】JConsole 远程监控 TaskManager
- MySQL 安装(msi/zip方式安装)
- 图像局部特征(十)--BRIEF描述子
- unity编辑器扩展_07(创建对话框,检测按钮的点击,点击按钮后提示信息,保存设置的数据,显示点击按钮后的处理的进度条信息)...
- JavaScript == 和 ===
- 开源网络爬虫程序(spider)一览
- android 混淆报错记录
- MAC中文输入法消失
- 超级计算机浪漫展览,这是最独特的“中国式浪漫”
- 系统分析师---论软件的系统测试及应用
- 计算机二级自学需要买书嘛,计算机二级ms office自学,买什么书看
- 【考研英语语法】祈使句
- 2022年《网络安全法》迎来首修,拟对多处加大处罚力度
- layui 表格加载动画_移动UI设计中动画的3个主要用途
- 3DMAX如何打开mat文件
- MySQL Shell 使用报错 SyntaxError: Unexpected identifier
- 课设舵机狗总结文——CubeMX+STM32F4+FreeRTOS+USART2+幻尔舵机控制板 实现动作组稳定运动
热门文章
- 编解码标准-H.264
- 利用XSS进行网页钓鱼
- 计算机会计电算化与实训报告,【会计电算化实训报告心得体会_2021年会计实训】- 环球网校...
- 不安装oracle数据库客户端,使用sqlplus
- 紧急通知:无论你英语多差,只要想学,看了此文必有改变
- 一个程序教你花式示爱 1——波动心形线
- 重磅消息 |《技术人修炼之道:从程序员到百万高管的72项技能》隆重上市!
- 什么是SRE? 现场可靠性工程师的重要作用
- Linux 调试之 TRACE_EVENT(二)
- 计算机毕业论文java毕业设计论文题目s2sh+mysql实现的校园实习兼职系统|招聘兼职求职[包运行成功]