Friday, November 16, 2012

Change Android Phone language programmatically

Shaadi.com Matrimonials





public static void change_setting_arabic(Context con) {
try {
                        /** here add language code */
Locale locale = new Locale("ar");

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);

} catch (Exception e) {
// TODO: handle exception
Log.d("error lang change-->", "" + e.getMessage().toString());
}
}
Shaadi.com Indian Matrimonials