gpt4 book ai didi

Android - 以编程方式更改设备系统区域设置

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:03:47 26 4
gpt4 key购买 nike

我想从我的应用程序更改设备区域设置(不仅仅是应用程序区域设置),就像用户可以在设置 -> 语言和键盘 -> 语言中所做的那样。

有人可以解释一下怎么做吗?我已经搜索了几个小时,但找不到方法。

最佳答案

是的,您可以更改任何 Android 版本的设备区域设置,确保您的应用程序是系统应用程序。这是可以帮助您的代码。如果您喜欢,请评价我的回答。

//getting the languages that are shown same as in our device settings
String[] systemLocaleIetfLanguageTags = getAssets().getLocales();
Arrays.sort(systemLocaleIetfLanguageTags);
this.locale_data = new ArrayList();
for (String ietfLanguageTag : systemLocaleIetfLanguageTags)
{
if (ietfLanguageTag != null && ietfLanguageTag.length() == 5)
{
this.locale_data.add(new Loc(ietfLanguageTag));
}
}
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, locale_data);
// Assign adapter to ListView
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3)
{
int itemPosition = position;
Loc loc = (Loc) ChangeLanguage.this.adapter.getItem(position);
Toast.makeText(ChangeLanguage.this, "language activated successfully !!", 0).show();
ChangeLanguage.change_setting(loc.getLocale());
}
});
}
//to change the locale
public static void change_setting(Locale loc)
{
try
{
Class<?> activityManagerNative = Class.forName("android.app.ActivityManagerNative");
Object am = activityManagerNative.getMethod("getDefault", new Class[0]).invoke(activityManagerNative, new Object[0]);
Object config = am.getClass().getMethod("getConfiguration", new Class[0]).invoke(am, new Object[0]);
config.getClass().getDeclaredField("locale").set(config, loc);
config.getClass().getDeclaredField("userSetLocale").setBoolean(config, true);
am.getClass().getMethod("updateConfiguration", new Class[] { Configuration.class }).invoke(am, new Object[] { config });
}
catch (Exception e)
{
e.printStackTrace();
}
}

关于Android - 以编程方式更改设备系统区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25355330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com