gpt4 book ai didi

android - 如何更改另一个应用程序的语言环境?

转载 作者:行者123 更新时间:2023-11-29 01:48:42 26 4
gpt4 key购买 nike

我可以使用以下代码更改我的应用程序的语言环境:

public static void setLocale(Locale locale) 
{
Locale.setDefault(locale);
Configuration appConfig = new Configuration();
appConfig.locale = locale;
App.context().getResources().updateConfiguration
(appConfig,App.context().getResources().getDisplayMetrics());
}

但是如何使用任何其他应用来做到这一点?

最佳答案

完成!!!

我正在与其他用户分享我的代码!它采用英语语言环境中当前 Activity 应用程序的名称:

public static void setLocale(Locale locale, String packageName){
try{
Context myAppContext = App.context();
Context otherAppContext = myAppContext.createPackageContext(packageName, myAppContext.CONTEXT_IGNORE_SECURITY);
Locale.setDefault(locale);
Configuration appConfig = new Configuration();
appConfig.locale = locale;
otherAppContext.getResources().updateConfiguration(appConfig, App.context().getResources().getDisplayMetrics());
}catch(Throwable t){
History.Error(t);
}
}

public static String getActive(){
try{
PackageManager pm = App.context().getPackageManager();
ActivityManager am = (ActivityManager) App.context().getSystemService(App.context().ACTIVITY_SERVICE);
RunningTaskInfo taskInfo = am.getRunningTasks(1).get(0); // The first in the list of RunningTasks is always the foreground task.
String packageName = taskInfo.topActivity.getPackageName();
setLocale(new Locale("en-US"), packageName);
PackageInfo appInfo = pm.getPackageInfo(packageName, 0);
String label = appInfo.applicationInfo.loadLabel(pm).toString();
App.Toast(label);
return label;
}catch (Throwable t){
History.Error(t);
}
return "???";
}

关于android - 如何更改另一个应用程序的语言环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764867/

26 4 0
文章推荐: android - 使用 ProGuard 优化会承担哪些风险?
文章推荐: mysql - 是否可以在 MySql 触发器中将表名派生为 "NEW."?