最近有需求需要切换系统语言的功能,查阅api最终搞定,代码分享如下:
1.切换语言

public void updateLanguage(Locale locale) {try {Object objIActMag;Class clzIActMag = Class.forName("android.app.IActivityManager");Class clzActMagNative = Class.forName("android.app.ActivityManagerNative");//amn = ActivityManagerNative.getDefault();Method mtdActMagNative$getDefault = clzActMagNative.getDeclaredMethod("getDefault");objIActMag = mtdActMagNative$getDefault.invoke(clzActMagNative);// objIActMag = amn.getConfiguration();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};// objIActMag.updateConfiguration(config);Method mtdIActMag$updateConfiguration = clzIActMag.getDeclaredMethod("updateConfiguration", clzParams);mtdIActMag$updateConfiguration.invoke(objIActMag, config);BackupManager.dataChanged("com.android.providers.settings");} catch (Exception e) {e.printStackTrace();}}

2.系统当前语言

public String getcurlanguage() {Locale locale = mContext.getApplicationContext().getResources().getConfiguration().locale;String language = locale.getLanguage();if (language.equals("zh")) {//中文return mContext.getResources().getString(R.string.language_chinese);} else if (language.equals("en")) {//英文return mContext.getResources().getString(R.string.language_english);} else {return mContext.getResources().getString(R.string.language_chinese);}}

这就是全部代码了 仅供参考

Android 获取当前系统语言和切换系统语言相关推荐

  1. 傲游浏览器语言怎么切换 傲游浏览器语言切换方法简述

    作为一款多功能.个性化.多标签的浏览器产品,傲游浏览器不仅能够有效减少浏览器对系统资源的占用率,还内置了大量的贴心功能,其中便包括浏览器语言切换.那么,傲游浏览器语言要怎么切换呢?不清楚具体步骤的朋友 ...

  2. Android 获取手机存储总大小,系统占用空间

    一.Android 存储介绍及通常查询大小 手机存储有两种,内置内存和外置内存(SD),目前可扩展内存的机型正在减少,大部分是内置存储的手机,内置128G.256G已经很常见,但如果有扩展功能的话,买 ...

  3. 关于 安装ubuntu16.04 和 win10双系统 后 怎样切换系统的问题

    由于我原来电脑所装的系统是win10,基于某些原因需要装载双系统,我选择的是装载ubuntu16.04,具体的装载细节不必多说,网上有详细的教程,我是选择的u盘安装,在win10上分出一定的区域给ub ...

  4. 根据浏览器语言自动切换多语言站点 Star.hou

    <script type="text/javascript">var url;var lang = (navigator.appName=='Netscape'?nav ...

  5. Android获取GPS网络定位经纬度信息

    定位一般分为是:GPS定位,WIFI定位,基站定位 和 AGPS定位 GPS定位 GPS定位需要手机GPS模块硬件支持.GPS走的是卫星通信的通道,在没有网络连接的情况下也能使用,并且通过GPS方式准 ...

  6. Android APP切换系统语言

    1.需求 三方APP实现点击切换语言功能(类似于系统Settings中点击语言自动切换) 2.实现 2.1 跳转到系统Settings的语言选择界面,实现功能 跳转代码: Intent intent ...

  7. android 语音和输入法按钮切换,android 切换系统语言,输入法也随之切换

    为什么有时候切换系统语言,输入法也随之切换 在系统有谷歌拼音输入法(Pinying输入法)和android 键盘输入法(Latin 输入法)的时候,此时系统的输入法不是第三方输入法. 在这时候去切换系 ...

  8. Android 切换系统语言

    切换系统语言分为下面两个步骤: 1. 创建不同语言资源: 2. 替换当前页面 Context 所持有的资源: 一.创建不同语言资源 创建步骤如下: 二.替换资源 界面需要重新创建,使用 recreat ...

  9. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

    Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...

最新文章

  1. 三星笔记本又发新品,这一次仍然惊艳
  2. 工程化专题之Maven(下)
  3. 架构师养成之道-01-知识图谱
  4. 移动端性能优化系列—启动速度
  5. verilog学习(1)基本语法
  6. 曾陷“数据风暴”危机的赛默飞世尔如何化险为夷的?
  7. 《数学之美》马尔科夫链的扩展-贝叶斯网络
  8. 记录一个美丽的小县城
  9. 并发包 concurrent(一) Atomic
  10. linux下不是很完美的提高android虚拟机的启动速度
  11. 小程序毕设作品之微信积分商城小程序毕业设计成品(7)中期检查报告
  12. 嵌入式linux 学习笔记--如何使用udhcpc获取动态IP
  13. 大数据技术之Hive 第6章 查询
  14. Android 自定义锁屏_三星Key Cafe 2021最新版下载-三星Key Cafe自定义键盘输入app v1.0.00.26...
  15. 数据结构与算法之基础概述
  16. 《原来我还可以这样活:拆掉思维里的墙》作者:古典
  17. 鱼c论坛 python课后题pdf,我与python的第一次亲密接触_课后测试题及答案.pdf
  18. 原生JS随机抽取号码
  19. 防爆计算机主板,一台不会害羞的矿用防爆电脑,我只服它!
  20. 阿里云旺即时通信OpenIM(一)基础学习

热门文章

  1. 【笔记】input data to the valid range for imshow with RGB data [0..1] for floats or [0.255] for integers
  2. vggNet网络学习(网络架构及代码搭建)
  3. 颠覆麦肯锡、BCG,这家公司的AI商业决策系统能做到吗?
  4. 最新最全的中国手机号码正则表达式
  5. Pandas基础教程
  6. EBS 并发请求 计划 fnd_conc_release_classes
  7. Semantic Segmentation与Instance Segmentation的区别
  8. linux软硬件系统观察,Linux系统在信息社会的发展
  9. 音视频、即时通讯、IM对传统聊天的影响
  10. 从开发者的角度,如何看待提高软件质量