当前位置: 首页 > news >正文

Android12 Rom定制设置默认语言为中文

Android12 Rom定制设置默认语言为中文

在这里插入图片描述

1.前言:

最近在做客制化定制时需要默认语言为中文,而且可以切换输入法,之前讲解过在ROM中如何设置默认输入法,这里就不展开了,其实这个需求很简单,就是调试的时候发现不能输入中文,这里记录一下过程,直接上代码.

2.在device.mk文件设置:

PRODUCT_LOCALES := zh_CNPRODUCT_PROPERTY_OVERRIDES += \persist.sys.locale=zh-CN \ro.product.locale=zh-CN  

3.修改Languages_default.xml:

设置默认语言修改为中文,默认语言基本上不修改的话是en_US,当然有的可能没有这个Languages_default这个文件,但是修改都是一样的,zh_CN

PRODUCT_LOCALES := \zh_CN \en_US \af_ZA \am_ET \ar_EG \ar_XB \as_IN \az_AZ \be_BY \bg_BG \bn_BD \bs_BA \ca_ES \cs_CZ \da_DK \de_DE \el_GR \en_AU \en_CA \en_GB \en_IN \

4.修改common-vendor.xml

PRODUCT_LOCALES := zh_CNPRODUCT_PROPERTY_OVERRIDES += \persist.sys.locale=zh-CN \ro.product.locale=zh-CN  

5.遇到问题:

之前预制的是讯飞输入法,如果不懂Rom咋预制输入法的同学可以看我之前的文章,这里就不重复了,打开网页发现不能输入中文,虽然显示默认语言为中文,按照上面的配置,通过日志排查和adb查看配置是否生效,发现还是不能切换语言,

在这里插入图片描述

6.解决方法:

6.1 使用google拼音输入法

发现google拼音是可以正常切换输入法语言的,中英文繁体都正常.

6.2 在模拟器上使用不同输入法:

安装了讯飞、搜狗和google拼音输入法

直接安装apk发现都是可以切换输入法的,

6.3 adb查看日志

发现输入法默认语言是中文,默认的输入法也是讯飞,单独安装的时候也是可以输入中文的,打包成镜像后就不行了,我换了一个google拼音输入法打包发现是可以生效的,而且默认的语言也是中文,默认的输入法也是讯飞,这里想起来之前最开始定制输入法的时候是更换了一个其他版本的apk.

6.4 去掉默认的输入法

这里为了更好地排查和不使用系统键盘,所以去掉默认系统的输入法和键盘

7.替换新apk:

于是去apkpure上面下载了一个讯飞输入法小米版.

下载地址:https://apkpure.net/

7.1 源码目录:

/packages/apps/FlyInputMethod

如果是Gapps的方式就在 /vendor/gapps/common/proprietary/product

7.2 Android.mk方式:

apk和模块名称随意,只要你能找到,也知道这个App是干啥的就行,目录根据需要自己决定放哪里.

# FlyInputMethodLOCAL_PATH := $(call my-dir) //设置当前模块的路径为当前目录include $(CLEAR_VARS) //清除之前定义的变量,开始一个新模块的定义LOCAL_MODULE := FlyInputMethod //模块名称
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk //源文件名称
LOCAL_MODULE_TAGS := optional //标记此模块为可选模块
LOCAL_MODULE_CLASS := APPS //指定模块类别为应用程序
LOCAL_CERTIFICATE := PRESIGNED //表示APK已经预先签名,不需要再签名
LOCAL_PRIVILEGED_MODULE := true //表示这是一个特权模块,会安装到系统的 priv-app 目录
LOCAL_DEX_PREOPT := false //禁用dex预优化
LOCAL_OVERRIDES_PACKAGES := LatinIME //表示这个模块会替换系统中的 LatinIMEinclude $(BUILD_PREBUILT) //包含预构建模块的脚本

7.3 Android.bp方式:

android_app_import {name: "FlyInputMethod",apk: "prebuilts/apks/FlyInputMethod/FlyInputMethod.apk",presigned: true,dex_preopt: {enabled: false,},privileged: true,product_specific: true,}

8.在编译镜像时引用讯飞输入法:

在你项目的device.mk或者product.mk都可以,具体看你自己项目配置

PRODUCT_PACKAGES += \FlyInputMethod 

9.实现的效果如下:

发现是可以输入中文的,而且还可以切换英文,至于其他的语言你可以根据需要添加.

在这里插入图片描述

在这里插入图片描述

10.总结:

  • 设置默认语言为中文zh_CN即可.
  • 更换不同输入法,这里根据需要自行选择
  • 通过adb日志查看语言和输入法是否生效
  • 如果你定制了输入法时,设置了默认语言和默认输入法,发现没效果可以试试上面的方式
  • 每个人遇到的情况和环境可能不一样,但是问题可能是一样,需要根据实际情况进行排查

今天的内容很简单,代码不多,但是调试和排查花了不少时间,本来很快就可以解决的问题,老是纠结代码容易陷入误区,所以有时候需要休息一下,眺望远方,说不定就找到思路和灵感了.

相关文章:

  • c++题目_P1027 [NOIP 2001 提高组] Car 的旅行路线
  • SALOME源码分析: Data Object Model
  • JavaScript学习教程,从入门到精通, jQuery 下拉菜单、显示隐藏元素及查找元素方法详解(32)
  • 如何将 VS Code 与 Linux 系统高效连接:从入门到进阶
  • 归因理论——AI与思维模型【87】
  • RAG技术完全指南(一):检索增强生成原理与LLM对比分析
  • 第 2.3 节: 基于 Python 的关节空间与任务空间控制
  • MATLAB中removedelay函数用法
  • Android短信监控技术实现:合法合规的远程采集方案
  • 【AI论文】ReasonIR:为推理任务训练检索器
  • 【Unity】一个UI框架例子
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第五模块·生态征服篇 —— 第十九章 Spring生态:从main函数到企业级开发
  • Spring IoC容器的设计与实现
  • 数字智慧方案6158丨智慧医疗解决方案精华版(58页PPT)(文末有下载方式)
  • 【音频】Qt6实现MP3播放器
  • Seata服务端同步提交事务核心源码解析
  • 【音频】基础知识
  • AI数字人系统开发:技术架构、应用场景与未来趋势
  • 西式烹饪实训室建设路径
  • 图论---有向图的强连通分量(Tarjan求SCC)
  • 《水饺皇后》:命运如刀,她以饺子还击
  • 微博:严厉打击对肖某董某事件蹭炒热点、编造故事博流量等行为
  • 刘洪洁已任六安市委副书记、市政府党组书记
  • 遍体鳞伤就是击不倒,这是国米老男孩最后的倔强
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 湖北鄂城:相继4所小学有学生腹泻呕吐,供餐企业负责人已被采取强制措施