阅读:3111回复:0
Android P java修改系统语言需要android:sharedUserId="android.uid.systemui"权限,不然就把LocalePicker反射调用 <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> private void changeSystemLanguage(String language,String country) { //private Locale localeZN = new Locale("zh", "CN"); Locale locale = new Locale.Builder().setLanguage(language).setRegion(country).build(); LocaleList localeList = LocalePicker.getLocales();; int index = -1; for (int i = 0; i < localeList.size(); i++) { Locale lc = localeList.get(i); if (locale.equals(lc)) { index = i; break; } } Locale[] localeArrayNew = new Locale[index < 0 ? localeList.size() + 1 : localeList.size()]; if (index < 0) { localeArrayNew[0] = locale; for (int i = 0; i < localeList.size(); i++) { localeArrayNew[i + 1] = localeList.get(i); } } else { for (int i = 0; i < localeList.size(); i++) { localeArrayNew = localeList.get(i); } localeArrayNew[index] = localeArrayNew[0]; localeArrayNew[0] = locale; } LocaleList mLocalesToSetNext = new LocaleList(localeArrayNew); LocalePicker.updateLocales(mLocalesToSetNext); } |
|