如何以编程方式禁止Android应用程序中的特定区域设置

时间:2011-09-09 05:18:32

标签: android internationalization locale

我们都知道Android应用程序可以根据不同语言环境的支持进行高度自定义。在我的情况下,我的应用程序目前支持6个语言环境,一切顺利。每当用户选择手机区域设置时,应用程序将切换到另一个区域设置,所有菜单,消息都使用本地语言。

现在问题是我希望以编程方式抑制应用程序中的特定区域设置,因为我将使用不同的渠道,定价政策等在不同国家/地区分发应用程序(并非总是通过Android Market)。因此,如果应用程序用于说中国 - 用户无法将语言环境切换为英语或法语。

最简单的方法就是从应用程序中删除其他语言环境资源 - 我理解这一点。但是从源维护的角度来看它并不是很舒服,所以我更倾向于采用一些编程方式来减少/抑制应用程序中的某些语言环境。

有什么想法吗?

1 个答案:

答案 0 :(得分:9)

使用此代码...

    private void callSwitchLang(String langCode) {
    Locale locale = new Locale(langCode);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics()); 
onCreate(null);
}

在那个方法中你传递了你选择的语言代码......