系统设置中 语言设置,中文或者英文
系统设置 设置中英文切换
方式一:直接调用系统类和方法
try {//tw addIActivityManager iActivityManager = ActivityManagerNative.getDefault();Configuration configuration = iActivityManager.getConfiguration();configuration.locale = locale;configuration.userSetLocale = true;iActivityManager.updateConfiguration(configuration);//提交到系统数据存储,需要在应用声明,不需要//BackupManager.dataChanged("com.android.providers.settings");}catch (Exception e){XLog.i("updateLocale fail!.....", e);}
这些类和方法都是只有系统应用才能访问,在标准sdk中是无法访问到的。可以通过系统提供的jar包 framework-base_2.jar
allprojects {repositories {jcenter()}gradle.projectsEvaluated {tasks.withType(JavaCompile) {options.compilerArgs.add('-Xbootclasspath/p:userlib/framework-base_2.jar')}}
}
然后加入作为外部引用的jar包:
dependencies {provided files('../userlib/framework-base_2.jar')
}
但是为了在编译过程中能够通过,并且优先选择系统里面的class文件,需要 app.iml 中找到
<orderEntry type="library" exported="" name="framework-base_2" level="project" />
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
将系统更jar放到 Android API前面,调用系统jar的有点在于方便,前提是,jar包中提供的类和方法必须在你机器系统中能够找到。
方法二:通过反射设置中英文切换
try {Object objIActMag, objActMagNative;Class clzIActMag = Class.forName("android.app.IActivityManager");Class clzActMagNative = Class.forName("android.app.ActivityManagerNative");Method mtdActMagNative$getDefault = clzActMagNative.getDeclaredMethod("getDefault");objIActMag = mtdActMagNative$getDefault.invoke(clzActMagNative);Method mtdIActMag$getConfiguration = clzIActMag.getDeclaredMethod("getConfiguration");Configuration config = (Configuration) mtdIActMag$getConfiguration.invoke(objIActMag);// set the locale to the new valueconfig.locale = locale;//持久化 config.userSetLocale = true;Class clzConfig = Class.forName("android.content.res.Configuration");java.lang.reflect.Field userSetLocale = clzConfig.getField("userSetLocale");userSetLocale.set(config, true);// 此处需要声明权限:android.permission.CHANGE_CONFIGURATION// 会重新调用 onCreate();Class[] clzParams = { Configuration.class };Method mtdIActMag$updateConfiguration = clzIActMag.getDeclaredMethod("updateConfiguration", clzParams);mtdIActMag$updateConfiguration.invoke(objIActMag, config);BackupManager.dataChanged("com.android.providers.settings");} catch (Exception e) {XLog.e("updateLocale fail!", e);}
以上是基于代码实现的设置中英文切换,实际操作过程中遇到,系统设置设置完中英文后,按主页键进入launcher,launcher一直无响应,网上分析的原因是,设置中英文以后,会导致launcher 执行 onstop -> ondestroy ,然后重新 oncreate然后,按主页键时,从后台切到前台,launcher很长一段时间无响应。
<activityandroid:name="com.inspur.livetv.weblauncher.Main"android:configChanges="layoutDirection|locale"android:clearTaskOnLaunch="true"android:label="@string/app_name"android:launchMode="singleTask"android:screenOrientation="nosensor" >
@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);XLog.d("[Main.onConfigurationChanged] !");updateTextUI();}
至此,中英文问题已经解决。
系统设置中 语言设置,中文或者英文相关推荐
- 设置Jenkins语言为中文或英文
文章目录 设置Jenkins语言为中文或英文 中文转English English转简体中文 设置Jenkins语言为中文或英文 通过安装locale 插件可以在不修改服务器配置的情况下,修改Jenk ...
- CentOS6.5--修改系统语言为中文或英文,文件夹切换语言
一.修改系统语言为中文或英文 第一步: 非常重要:由当前位置切换到root 命令:su root 第二步: 命令:vim /etc/sysconfig/i18n 敲回车之后会看到文件中显示: LANG ...
- windows server 2012 r2 切换语言为中文、英文,下载安装多语言安装包
windows server 2012 r2 切换语言为中文.英文,下载安装多语言安装包 下载地址:https://pan.baidu.com/s/19P75HJ1KGbxIYKeUIeqG_w 提 ...
- origin9语言设置中文_英雄联盟手游怎么设置繁体 LOL手游繁中设置方法?_英雄联盟手游...
英雄联盟手游终于在海外部分地区上线了,不过玩海外服有一点不好,就是界面都是外文,比如英文.日文.韩文等等.那么英雄联盟手游怎么设置繁体中文呢,这里就来给大家介绍一下LOL手游繁中设置方法,将游戏语言切 ...
- 双y轴图中怎么设置中文字体为仿宋_GB2312,英文字体为Times New Roman
如果您使用的是 Matplotlib 库,可以使用以下代码设置双 y 轴图中的字体: import matplotlib.pyplot as pltfrom matplotlib.font_manag ...
- Android Studio模拟器如何把语言设置为中文和设置中文输入法
文章目录 Android Studio模拟器语言设置为中文 Android Studio模拟器设置中文输入法 Android Studio模拟器安装搜狗输入法 下载搜狗输入法x86的输入法APK 安装 ...
- origin9语言设置中文_Kali设置中文
kali安装的时候选择了英文安装,后面安装完成后进入kali,系统设置调节好了中文语言之后,系统设置还是显示英文,初加推断应该是中文字体的问题. 0x01 安装中文字体 apt install ttf ...
- css样式中如何设置中文字体?
代码如下: .selector{ font-family: SimHei,"微软雅黑",sans-serif; } 注意:加上中文名"微软雅黑"是为了兼容op ...
- origin9语言设置中文_《英雄联盟手游》界面翻译图 LOL手游界面设置全翻译图一览...
导读 英雄联盟手游开始抢先测试,虽然很遗憾没有抢到初始测试的资格,不过下载其他的不同服务器来玩,这样语言就会成为一些麻烦,而且目前无法修改中文设置,虽然对于老玩家来说,大概能懂什么意思,但是有中文更好 ...
- go 验证字符串中是否包含中文或英文
Go 验证字符串中是否包含中文(推荐) _ [IIS7站长之家] golang判断字符是不是字母-Golang-PHP中文网 基础知识 - Golang 中的正则表达式 - GoLove - 博客园 ...
最新文章
- WSUS3.0的部署及安装
- 小工匠聊架构 - 分布式缓存技术
- Python中的split,rsplit,splitlines
- Boost:无序的bimap双图的测试程序
- 高效大数乘法 c语言,华为2012校园招聘上机题——大数相乘,两个超过100位的大数相乘C语言...
- JavaFX 2 GameTutorial第4部分
- java ews_Java---使用EWS 写个ExchangeMailUtil
- Silverlight MMORPG网页游戏开发课程[一期] 第九课:HUD与背景音乐
- Java线程通信之等待/通知
- IDC机房对接阿里云
- 万字长文!剖析美团外卖持续交付的前世今生
- 基础练习: 使用openssl命令创建RSA密钥
- CTO:不要在代码中写 set/get 方法了,逮一次罚款...
- net.java.html.boot.BrowserBuilder
- GsonFormatPlus转变回GsonFormat办法
- svn admin 详细介绍
- docker搭建aria2离线下载,rclone自动上传
- latex模板中 引入ORCID链接的方法
- 推荐一款不错的杀毒软件,还在找卡巴激活码的网友不妨进来看看!
- 轻量级神经网络架构综述
热门文章
- 关于_CRT_SECURE_NO_WARNINGS与_CRT_SECURE_NO_DEPRECATE
- 苹果手机怎么打开压缩文件_wx无法打开压缩文件的2种解决方法(以苹果手机为例)...
- 压缩包文件的密码如何破解
- 基于Canvas+React的高性能Table表格
- Problem F - Football Free Kick(数组1e9的插入和删除)
- Qt和PyQt中的组合键输入捕获处理
- 使用pynput监听键盘组合键
- php5.5.12 yar,[原]PHP-yar拓展源码解读五-server篇
- 约分最简分式 (15 分)
- JAVA7-6 约分最简分式 (15 分)