2017-01-03 3 views
0

누구든지 디바이스의 시스템 언어를 프로그래밍 방식으로 설정할 수 있다는 것을 알고 있습니까? 우리가 디바이스 로케일 설정

`android.permission.CHANGE_CONFIGURATION` 

나는이 방법을 반영 테스트되었습니다 (구글은 5.0 안드로이드에서 변경)를 사용하지 못할 경우 나는 문제에 대해 알고있다. 우리는 ADB와 권한을 부여 할 때. (이 아니 올바른 방법)

adb grant mypackage android.permission.CHANGE_CONFIGURATION 

내 인앱 관리자 권한이 그리고 그 작업 만 나는 어쩌면 내 응용 프로그램이 관리자 응용 프로그램이 또 다른 방법입니다 때 내가 programmaticaly 장치 로케일을 변경할 수 있기를 바랍니다 ?

+0

http://exackoverflow.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