Android切换语言记录

Android  2022年9月29日 am8:09发布2年前 (2022)更新 城堡大人
108 0 0

前言

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

正文

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

方式一

private void language(Locale locale) {
    try {
        LocalePicker.updateLocale(locale == Locale.ENGLISH ? Locale.SIMPLIFIED_CHINESE : Locale.ENGLISH);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

方式二

反射

private void language(Locale locale) {
    try {
        Class iActivityManager = Class.forName("android.app.IActivityManager");
        Class activityManagerNative = Class.forName("android.app.ActivityManagerNative");
        Method getDefault = activityManagerNative.getDeclaredMethod("getDefault");
        Object objIActMag = getDefault.invoke(activityManagerNative);
        Method getConfiguration = iActivityManager.getDeclaredMethod("getConfiguration");
        Configuration config = (Configuration) getConfiguration.invoke(objIActMag);
        config.locale = locale;
        Class clzConfig = Class.forName("android.content.res.Configuration");
        java.lang.reflect.Field userSetLocale = clzConfig.getField("userSetLocale");
        userSetLocale.set(config, true);
        Class[] clzParams = {Configuration.class};
        Method updateConfiguration = iActivityManager.getDeclaredMethod("updateConfiguration", clzParams);
        updateConfiguration.invoke(objIActMag, config);
//      BackupManager.dataChanged("com.android.providers.settings");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

参考文章

  1. Android设置语言 - 简书 (jianshu.com)

 历史上的今天

  1. 2024: [摘]替代Beyond Compare软件(0条评论)
  2. 2024: Android在线源码查看(0条评论)
  3. 2021: 舒婷:人心的法则(0条评论)
  4. 2019: 彼得.B.巴赫:失去爱人的滋味(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

周国平:享受智力活动的快乐

   人不但应该享受生命,而且人还有一个更高的层次,就是人是有精神属性的,人应该享受自己的精神属性,享受精神的快乐。精神需要的满足,精神能力的生长和发展,是人生幸福更加重要的源泉和方面。那么,人有哪些精神需要,有些什么样的精神能力呢?我套用柏拉图的一个分类,不过可能跟他的原意不太一样。我们可以把人...

lateinit和by lazy简单使用

前言记录一下Kotlin中lateinit和by lazy简单使用。正文lateinit为延迟初始化属性。lateinit用于延迟初始化一个var可变属性。属性类型必须是非空的且不能是原始类型(如 Int, Double)。经常在类中定义属性时class Person{   v...

北岛:回答

卑鄙是卑鄙者的通行证,高尚是高尚者的墓志铭,看吧,在那镀金的天空中,飘满了死者弯曲的倒影。 冰川纪过去了,为什么到处都是冰凌?好望角发现了,为什么死海里千帆相竞? 我来到这个世界上,只带着纸、绳索和身影,为了在审判之前,宣读那些被判决的声音。 ...

Android 对Bitmap的一些操作记录

前言Android中对Bitmap的操作很多,比如缩放,裁剪,旋转等,这里简单记录一下,方便自己查阅。PS: 参考别人内容修改,部分内容有改动和自己的理解。正文Matrix对Bitmap的操作大都需要Matrix支持,Matrix 通过矩阵来处理位图,计算出各个像素点的位置,从而把bit...

shape之gradient属性简介

gradient属性简介在drawable文件夹中创建shape_gradient.xml资源。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/ap...

adb命令打印cpu信息

有时候系统出现问题可能和当前的 CPU 等资源紧张有关系。那么如何实时打印系统当前的 CPU 占用的情况呢?输入命令:adb shell top -m 5该命令会打印当前使用 CPU 前5位的进程相关的信息,每隔1s更新一次User 6%, System 3%, IOW 0%, ...