- 设置时区
添加权限
> <uses-permission android:name="android.permission.SET_TIME_ZONE" />
AlarmManager timeZone= (AlarmManager)getSystemService(ALARM_SERVICE);
timeZone.setTimeZone("Asia/Shanghai");
- 设置语言
setLanguage(Locale.ENGLISH);
private void setLanguage(Locale locale) {
if (locale != null) {
try {
Class classActivityManagerNative = Class.forName("android.app.ActivityManagerNative");
Method getDefault = classActivityManagerNative.getDeclaredMethod("getDefault");
Object objIActivityManager = getDefault.invoke(classActivityManagerNative);
Class classIActivityManager = Class.forName("android.app.IActivityManager");
Method getConfiguration = classIActivityManager.getDeclaredMethod("getConfiguration");
Configuration config = (Configuration) getConfiguration.invoke(objIActivityManager);
config.setLocale(locale);
//config.userSetLocale = true;
Class clzConfig = Class
.forName("android.content.res.Configuration");
java.lang.reflect.Field userSetLocale = clzConfig
.getField("userSetLocale");
userSetLocale.set(config, true);
Class[] clzParams = {Configuration.class};
Method updateConfiguration = classIActivityManager.getDeclaredMethod("updateConfiguration", clzParams);
updateConfiguration.invoke(objIActivityManager, config);
BackupManager.dataChanged("com.android.providers.settings");
} catch (Exception e) {
Log.d("sjf", "setLanguage: " + e.getLocalizedMessage());
}
}
}
备注:需要使用系统签名,android:sharedUserId=“android.uid.system”