Change Android Phone language programmatically

14:23:00 Dhaval Sodha Parmar 3 Comments

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

3 comments:

  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, :)

    ReplyDelete
    Replies
    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 : http://stackoverflow.com/a/6265265/1168654 & http://stackoverflow.com/a/15221402/1168654

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

      Delete