Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void setLocale(String localeName) {
- try {
- Locale locale = new Locale(localeName);
- Class amnClass = 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 (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- e.printStackTrace();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment