Android修改系统语言
16lz
2021-01-26
android很多app的语言设置都是设置自己app的语言,并没有设置到系统的语言,今天小编小试牛刀,自己实现了一个可以设置androi系统语言的功能。如下:
Locale locale = Locale.ENGLISH;//英文Locale locale = Locale.CHINA;//中文 Class amnClass = null; try { amnClass = Class.forName("android.app.ActivityManagerNative"); Object amn = null; Configuration config = null; // amn = ActivityManagerNative.getDefault(); Method methodGetDefault = amnClass.getMethod("getDefault"); methodGetDefault.setAccessible(true); amn = methodGetDefault.invoke(amnClass); // config = amn.getConfiguration(); Method methodGetConfiguration = amnClass.getMethod("getConfiguration"); methodGetConfiguration.setAccessible(true); config = (Configuration) methodGetConfiguration.invoke(amn); // config.userSetLocale = true; Class configClass = config.getClass(); Field f = configClass.getField("userSetLocale"); f.setBoolean(config, true); // set the locale to the new value config.locale = locale; // amn.updateConfiguration(config); Method methodUpdateConfiguration = amnClass.getMethod("updateConfiguration", Configuration.class); methodUpdateConfiguration.setAccessible(true); methodUpdateConfiguration.invoke(amn, config); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }
最后在AndroidManifest.xml里设置:
完结!
更多相关文章
- 消息推送系统设计
- Android中visibility属性
- Android中Gallery 点击图片放大
- IDS打包系统包修改
- Android开发小技巧系列(六)
- Android(安卓)7.1.2(Android(安卓)N) Multi-window-mode--多窗口
- [置顶] 深入了解Android进度条——ProgressBar,SeekBar和RatingBa
- Android(安卓)调用系统相机拍照并储存在本地
- android系统提供的常用命令行工具