设置系统的语言

近日的项目中,需要编写设置系统语言的方法,之后,在同事和网上的信息的帮助下,成功实现了这一功能。

try {
	Class<?> amnClass = Class.forName("android.app.ActivityManagerNative");
			
	ActivityManager activityManager = (ActivityManager)amnClass.getMethod("getDefault").invoke(amnClass,null);
			
	Configuration config = (Configuration)activityManager.getClass().getMethod("getConfiguration").invoke(activityManager, null);
			
	config.getClass().getDeclaredField("locale").set(config, Locale.ENGLISH);
			
	config.getClass().getDeclaredField("userSetLocale").setBoolean(config, true);
			
	activityManager.getClass().getMethod("updateConfiguration", Configuration.class).invoke(activityManager, config);
} catch (ClassNotFoundException e) {
	e.printStackTrace();
} catch (IllegalArgumentException e) {
	e.printStackTrace();
} catch (IllegalAccessException e) {
	e.printStackTrace();
} catch (InvocationTargetException e) {
	e.printStackTrace();
} catch (NoSuchMethodException e) {
	e.printStackTrace();
} catch (NoSuchFieldException e) {
	e.printStackTrace();
}


android源代码下的设置语言操作,参见:/frameworks/base/core/java/com/android/internal/app/LocalePicker.java

你可能感兴趣的:(android,android,android,语言)