Android程序自动更改系统语言代码

来源:互联网 发布:中泰法师斗法事件知乎 编辑:程序博客网 时间:2024/06/05 09:40
更改系统语言:
Locale locale = new Locale(targetLocaleAsString);  Class 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);

设置系统时区:

AlarmManager timeZone= (AlarmManager)getSystemService(ALARM_SERVICE);timeZone.setTimeZone("Asia/Taipei");

设置系统时间:

Calendar c = Calendar.getInstance();c.set(2010, 1, 1, 12, 00, 00);AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);am.setTime(c.getTimeInMillis());

需要的设置权限:

android.permission.SET_TIME_ZONE

需要加入系统属性:

android:sharedUserId="android.uid.system"

0 0
原创粉丝点击