Android应用更改系统语言
来源:互联网 发布:淘宝玩具古剑 编辑:程序博客网 时间:2024/05/16 14:20
/** * Update the language of the system */public void updateLanguage(Locale locale) { try { Object objIActMag, objActMagNative; 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 value config.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(); }}
然后在调用的时候:
case R.id.pupop_chinese: Log.d(TAG, "onClick: 中文"); updateLanguage(Locale.SIMPLIFIED_CHINESE); break;case R.id.pupop_english: Log.d(TAG, "onClick: 英文"); updateLanguage(Locale.ENGLISH); break;
别忘记添加权限
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>这样就可以啦
阅读全文
0 0
- Android应用更改系统语言
- android 动态更改系统语言
- Android程序自动更改系统语言代码
- 通过Android应用更改系统时间
- Android 获取当前系统语言及地区,并更改语言
- Android 获取当前系统语言及地区,并更改语言
- Android 获取当前系统语言及地区,并更改语言
- Android 获取当前系统语言及地区,并更改语言
- Android 获取当前系统语言及地区,并更改语言
- Android 获取当前系统语言及地区,并更改语言
- Solaris 更改系统语言
- linux更改系统语言
- 更改Linux系统语言
- ubutntu系统语言更改
- Android 系统级开发学习(更改android 默认语言)
- 更改android 默认语言
- Android更改语言模式
- Android应用图标更改
- mongodb添加修改用户,设置权限
- 如何获得select被选中option的value和text
- P2460清理花瓶
- 博客搬家
- Android使用讯飞SDK开发语音识别及合成小Demo
- Android应用更改系统语言
- prime flyd 基础算法
- Git 推送项目新内容
- 今天在数据库中做插入时,提醒“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'TB_Admin_Role' 中的标识列插入显式值。”的问题。
- 怎么分辨博文的好坏
- 接口测试简介及如何做接口测试
- http协议摘记
- Linux 普通用户之间免密登陆
- 对于Android MVP的一些思考(二)