2017-01-03 9 views
0

デバイスのシステム言語をプログラムで設定することは可能ですか? 私たちはデバイスのシステムロケールを設定する

`android.permission.CHANGE_CONFIGURATION` 

(Googleがアンドロイド5.0以上でそれを変更)私はでそれをテストした は、メソッドを反映を使用するカントの問題について知っています。そして

adb grant mypackage android.permission.CHANGE_CONFIGURATION 

私のアプリは、管理者権限を持っているだけでその作業我々はADBとの許可を与える。(その正しくない方法で)、私は私のアプリは、管理アプリです多分そこに別の方法を願っていますし、私はprogrammaticalyデバイスのロケールを変更することができます?

+0

http://stackoverflow.com/questions/40942535/using-locale-to-force-android-to-use-a-specific-strings-xml-file-for-a-non-suppo/40986303#40986303 – Onik

答えて

0

この方法は、大部分の作業を行います。したがって、編集します

private static boolean updateResources(Context context, String language) { 
     Locale locale = new Locale(language); 
     Locale.setDefault(locale); 

     Resources resources = context.getResources(); 

     Configuration configuration = resources.getConfiguration(); 
     configuration.locale = locale; 

     resources.updateConfiguration(configuration, resources.getDisplayMetrics()); 

     return true; 
    } 

あなたが渡した言語文字列から新しいロケールを選択し、アプリケーションのリソースファイルを更新します。

+0

この方法はAPPのためだけに動作します。システム言語が必要です。 – Peter

関連する問題