更改设备的语言设置(区域设置)

Ray*_*non 18 settings android locale

我知道可以通过res/string在单个应用程序中使用多种语言,具体取决于Locale.这是控制用户语言的案例 (ANDROID)

现在我该如何更改手机中的语言?就像我通过菜单>设置>语言和键盘>选择区域设置>语言一样

是否有一些真正的代码可以访问这些设置?或者我应该为语言设置的快捷方式创建意图.请发一些代码

编辑:使用Locale类developer.android.com/intl/fr/reference/java/util/Locale.html

构造函数至少是Locale(String language)输入是语言.如何检索设备上使用的当前语言?

Jim*_*ler 43

不确定是否直接从应用程序设置它,但如果您想将用户发送给自己进行更改,请尝试以下操作:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");            
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

  • 我所做的是在USB上连接到我的电脑时使用我的手机,并查看logcat输出.每个启动的Intent都会记录到输出中.该行读取I/ActivityManager(1018):开始活动:Intent {act = android.intent.action.MAIN cmp = com.android.settings/.LanguageSettings}我预感到Google代码搜索并搜索"LanguageSettings Android"意图"并找到了一个人做这个的例子.我自己测试了它并简化了代码片段的代码. (6认同)
  • 对于某些用例,startActivity(new Intent(Settings.ACTION_LOCALE_SETTINGS))可能是更好的方法,因为它直接打开语言列表,也是一个官方定义的操作. (4认同)

Ser*_*gey 13

还有另一种方法可以打开系统设置来更改语言:

Intent i = new Intent( android.provider.Settings.ACTION_LOCALE_SETTINGS );
startActivity( i );
Run Code Online (Sandbox Code Playgroud)

它只显示语言列表,当您选择一种语言时 - 它会更改设备上的语言.


Ray*_*non 6

我找到了自己问题的另一个答案.有一个开源代码项目code.google.com/p/languagepickerwidget 它正在重新创建一个ListActivity来显示和选择语言.

吉姆,你的解决方案非常简单,正是我所需要的.这是设置的重点.在您发布之后,我立即在市场上上传了一个名为"raygional"的应用.如果我能(我只有6分)我会让你的答案有用.

还有另一种方法可以查看流程和意图.在模拟器上,转到菜单>开发工具>开发设置>,然后单击显示正在运行的进程