2015-09-21 50 views
0

參考this link,我正在構建一個可改變android設備系統區域設置的android應用程序。它適用於印度語言印地語和孟加拉語,但對於其他印度語言而言,它並不完全工作(但部分時間部分地改變了部分時間)。我的示例代碼段:更改設備系統語言環境不適用於除印度語和孟加拉語之外的其他印度語言

public void toEnglish(View v){ 
    IActivityManager am = ActivityManagerNative.getDefault(); 
    Configuration config; 
    try { 
     config = am.getConfiguration(); 
     config.locale = Locale.US; 
     am.updateConfiguration(config); 
     //Trigger the dirty bit for the Settings Provider. 
     BackupManager.dataChanged("com.android.providers.settings"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
    public void toHindi(View v) { 
    IActivityManager am = ActivityManagerNative.getDefault(); 
    Configuration config; 
    try { 
     Locale locale = new Locale("hi"); 
     config = am.getConfiguration(); 
     config.locale = locale; 
     am.updateConfiguration(config); 
     //Trigger the dirty bit for the Settings Provider. 
     BackupManager.dataChanged("com.android.providers.settings"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public void toTamil(View v) { 
    IActivityManager am = ActivityManagerNative.getDefault(); 
    Configuration config; 
    try { 
     Locale locale = new Locale("ta"); 
     config = am.getConfiguration(); 
     config.locale = locale; 
     am.updateConfiguration(config); 
     //Trigger the dirty bit for the Settings Provider. 
     BackupManager.dataChanged("com.android.providers.settings"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

它不喜歡的,我沒有在我的設備,這些語言的支持,如果我去通過設置 - >語言&輸入 - >語言和變化的語言在那裏,它作品。但是,如何以編程方式做到這一點?

+0

您的logcat中是否有任何錯誤? – Buddy

+0

沒有錯誤,只是沒有完全改變。我也跟着[這個鏈接](http://stackoverflow.com/questions/2900023/change-language-programatically-in-android)@ icyerasor的答案,但結果相同。 – PPB

回答

0

在初始化語言環境時添加國家字符串爲我完成了這個訣竅。在這裏,我添加了字符串「IN」。

public void toTamil(View v) { 
IActivityManager am = ActivityManagerNative.getDefault(); 
Configuration config; 
try { 
    Locale locale = new Locale("ta","IN"); 
    config = am.getConfiguration(); 
    config.locale = locale; 
    am.updateConfiguration(config); 
    //Trigger the dirty bit for the Settings Provider. 
    BackupManager.dataChanged("com.android.providers.settings"); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
相關問題