美文网首页
设置系统语言、时间

设置系统语言、时间

作者: 小马哥真帅 | 来源:发表于2021-10-09 16:45 被阅读0次
清单文件添加
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:sharedUserId="android.uid.system"
    >

1.获取当前语言:
Locale.getDefault().getLanguage();
2.切换语言:

//// 此处需要声明权限:android.permission.CHANGE_CONFIGURATION
//// android:configChanges="keyboardHidden|orientation|screenSize"
//// 会重新调用 onCreate();

        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);
            //new Locale(ZH,"CN");中文
            //new Locale(EN,"US");英文
            config.setLocale(locale);
            
            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);

        } catch (Exception e) {
          e.printStackTrace();
        }

时间相关

添加权限
  <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
1.判断是否是12小时制
DateFormat.is24HourFormat(mContext);
2.判断日期时间是否自动获取
    public boolean isDateTimeAuto() {
        try {
            return android.provider.Settings.Global.getInt(mContext.getContentResolver(),
                    android.provider.Settings.Global.AUTO_TIME) > 0;
        } catch (Settings.SettingNotFoundException e) {
            e.printStackTrace();
            return false;
        }
    }
3.设置时区自动获取,设置时区
        android.provider.Settings.Global.putInt(mContext.getContentResolver(),
                android.provider.Settings.Global.AUTO_TIME_ZONE, 1);//自动获取时区
        setTimeZone(getDefaultTimeZone());
4.设置12/24小时制
  android.provider.Settings.System.putString(mContext.getContentResolver(),
                android.provider.Settings.System.TIME_12_24, "12");

  android.provider.Settings.System.putString(mContext.getContentResolver(),
                android.provider.Settings.System.TIME_12_24, "24");
5.设置系统日期
public void setSysDate(int year,int month,int day){
  Calendar c = Calendar.getInstance();
  c.set(Calendar.YEAR, year);
  c.set(Calendar.MONTH, month);
  c.set(Calendar.DAY_OF_MONTH, day);

  long when = c.getTimeInMillis();

  if(when / 1000 < Integer.MAX_VALUE){
      ((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
  }
}
6.设置系统时间
public void setSysTime(int hour,int minute){
  Calendar c = Calendar.getInstance();
  c.set(Calendar.HOUR_OF_DAY, hour);
  c.set(Calendar.MINUTE, minute);
  c.set(Calendar.SECOND, 0);
  c.set(Calendar.MILLISECOND, 0);

  long when = c.getTimeInMillis();

  if(when / 1000 < Integer.MAX_VALUE){
      ((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
  }
}
6.设置系统时区
public void setTimeZone(String timeZone){
  final Calendar now = Calendar.getInstance();
  TimeZone tz = TimeZone.getTimeZone(timeZone);
  now.setTimeZone(tz);
}
6.获取当前系统时区
public String getDefaultTimeZone(){
  return TimeZone.getDefault().getDisplayName();
}

注意清单中权限,后续还需要系统签名文件和打包,安装和卸载命令。

相关文章

  • 设置系统语言、时间

    清单文件添加 1.获取当前语言: 2.切换语言: //// 此处需要声明权限:android.permission...

  • iOS模拟器怎样将键盘设置为中文

    1、在系统设置中,设置-通用-语言与地区-iPhone语言-简体中文 2、在系统设置中,设置-通用-键盘-键盘-简...

  • iOS多语言备选规则

    手机系统语言设置中文、英文除外的语言,app内不显示base语言。 系统语言可以设置一个语言列表,会根据这个语言列...

  • mycncart操作使用教程 - 语言设置

    如果你想新增或者删除语言,操作路径为网站后台【系统设置】 -> 【参数设置】 -> 【语言设置】。 注意新增语言时...

  • iOS-图文讲解语言国际化

    前言:iOS的语言国际化是指根据用户手机系统的语言设置,自动将APP的语言设置为和用户手机系统语言一致的语言。通常...

  • 本地化/国际化语言

    简介: 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言...

  • IOS软件国际化(本地化Localizable)

    指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言。 点击Finish,然后项目...

  • iOS语言本地化/国际化

    前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一...

  • 【转】3分钟实现iOS语言本地化/国际化(图文详解)

    前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一...

  • iOS 应用的国际化与本地化

    前言 语言本地化,又叫做语言国际化。是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一...

网友评论

      本文标题:设置系统语言、时间

      本文链接:https://www.haomeiwen.com/subject/vjuzfhtx.html