Change Android Phone language programmatically

14:23:00 Dhaval Sodha Parmar 3 Comments Matrimonials

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

Class amnClass = Class.forName("");
Object amn = null;
Configuration config = null;

// amn = ActivityManagerNative.getDefault();
Method methodGetDefault = amnClass.getMethod("getDefault");
amn = methodGetDefault.invoke(amnClass);

// config = amn.getConfiguration();
Method methodGetConfiguration = amnClass
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.invoke(amn, config);

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


  1. hi.. I would like to have an appwidget where i can simply tap the icon displayed in my homescreen then the language of my phone will automatically change.. can you provide some android programs in connection to this? by the way ,, im using the eclipse ide for making my programs for my android phone.. im hoping for your fast response. thank you, :)

    1. first you have create any widget in android??

      if yes then put my code in you widget click listner

      if no then check this : &

    2. Thank you for responding. I will try it now and I'll update you for the progress. :)