自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件
自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件
自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件

前言

记录一下Android语言切换,网上也很多,这里摘抄于此方便自己查阅

正文

下面代码都测试过,验证ok

方式一

  1. private void language(Locale locale) {
  2. try {
  3. LocalePicker.updateLocale(locale == Locale.ENGLISH ? Locale.SIMPLIFIED_CHINESE : Locale.ENGLISH);
  4. } catch (Exception e) {
  5. e.printStackTrace();
  6. }
  7. }
复制

方式二

反射

  1. private void language(Locale locale) {
  2. try {
  3. Class iActivityManager = Class.forName("android.app.IActivityManager");
  4. Class activityManagerNative = Class.forName("android.app.ActivityManagerNative");
  5. Method getDefault = activityManagerNative.getDeclaredMethod("getDefault");
  6. Object objIActMag = getDefault.invoke(activityManagerNative);
  7. Method getConfiguration = iActivityManager.getDeclaredMethod("getConfiguration");
  8. Configuration config = (Configuration) getConfiguration.invoke(objIActMag);
  9. config.locale = locale;
  10. Class clzConfig = Class.forName("android.content.res.Configuration");
  11. java.lang.reflect.Field userSetLocale = clzConfig.getField("userSetLocale");
  12. userSetLocale.set(config, true);
  13. Class[] clzParams = {Configuration.class};
  14. Method updateConfiguration = iActivityManager.getDeclaredMethod("updateConfiguration", clzParams);
  15. updateConfiguration.invoke(objIActMag, config);
  16. // BackupManager.dataChanged("com.android.providers.settings");
  17. } catch (Exception e) {
  18. e.printStackTrace();
  19. }
  20. }
复制

参考文章

  1. Android设置语言 – 简书 (jianshu.com)
自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件

相关文章

自动化零件服务商 - 供应SMC,FESTO,CKD全新正品气动元件

暂无评论

none
暂无评论...