阅读:3111回复:0

Android P java修改系统语言

楼主#
更多 发布于:2021-05-18 14:46


需要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); }
游客

返回顶部