Android实践 -- 设置系统日期时间和时区


转自:https://www.cnblogs.com/Free-Thinker/p/6627813.html

设置系统日期时间和时区

设置系统的日期时间和时区,需要 系统权限和系统签名android:sharedUserId="android.uid.system"
需要在manifest文件中添加相应的权限

  1. <uses-permission android: name="android.permission.WRITE_SETTINGS"/>
  2. <uses-permission android: name="android.permission.WRITE_SECURE_SETTINGS"/>
  • 判断系统使用的是24小时制还是12小时制

    boolean is24Hour =  DateFormat.is24HourFormat(mContext);
  • 设置系统的小时制

24小时制

  1. android.provider.Settings.System.putString(mContext.getContentResolver(),
  2. android.provider.Settings.System.TIME_12_24, "24");

12小时制

  1. android.provider.Settings.System.putString(mContext.getContentResolver(),
  2. android.provider.Settings.System.TIME_12_24, "12");
  • 判断系统的时区是否是自动获取的

    1. public boolean isTimeZoneAuto(){
    2. try {
    3. return android.provider.Settings.Global.getInt(mContext.getContentResolver(),
    4. android.provider.Settings.Global.AUTO_TIME_ZONE) > 0;
    5. } catch (SettingNotFoundException e) {
    6. e.printStackTrace();
    7. return false;
    8. }
    9. }
  • 设置系统的时区是否自动获取

    1. public void setAutoTimeZone(int checked){
    2. android.provider.Settings.Global.putInt(mContext.getContentResolver(),
    3. android.provider.Settings.Global.AUTO_TIME_ZONE, checked);
    4. }
  • 判断系统的时间是否自动获取的

    1. public boolean isDateTimeAuto(){
    2. try {
    3. return android.provider.Settings.Global.getInt(mContext.getContentResolver(),
    4. android.provider.Settings.Global.AUTO_TIME) > 0;
    5. } catch (SettingNotFoundException e) {
    6. e.printStackTrace();
    7. return false;
    8. }
    9. }
  • 设置系统的时间是否需要自动获取

    1. public void setAutoDateTime(int checked){
    2. android.provider.Settings.Global.putInt(mContext.getContentResolver(),
    3. android.provider.Settings.Global.AUTO_TIME, checked);
    4. }
  • 设置系统日期

    参考系统Settings中的源码

    1. public void setSysDate(int year,int month,int day){
    2. Calendar c = Calendar.getInstance();
    3. c.set(Calendar.YEAR, year);
    4. c.set(Calendar.MONTH, month);
    5. c.set(Calendar.DAY_OF_MONTH, day);
    6. long when = c.getTimeInMillis();
    7. if(when / 1000 < Integer.MAX_VALUE){
    8. ((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
    9. }
    10. }
  • 设置系统时间

    参考系统Settings中的源码

    1. public void setSysTime(int hour,int minute){
    2. Calendar c = Calendar.getInstance();
    3. c.set(Calendar.HOUR_OF_DAY, hour);
    4. c.set(Calendar.MINUTE, minute);
    5. c.set(Calendar.SECOND, 0);
    6. c.set(Calendar.MILLISECOND, 0);
    7. long when = c.getTimeInMillis();
    8. if(when / 1000 < Integer.MAX_VALUE){
    9. ((AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
    10. }
    11. }
  • 设置系统时区

    1. public void setTimeZone(String timeZone){
    2. final Calendar now = Calendar.getInstance();
    3. TimeZone tz = TimeZone.getTimeZone(timeZone);
    4. now.setTimeZone(tz);
    5. }
  • 获取系统当前的时区

    1. public String getDefaultTimeZone(){
    2. return TimeZone.getDefault().getDisplayName();

更多相关文章

  1. FMOD在Android玩音响系统的抖动问题
  2. HelloWorld-----Google手机操作系统Android应用开发入门
  3. Android 基础总结:(一)Android系统架构
  4. Android里的shell的系统命令
  5. Android系统源码基础知识讲解
  6. 深入浅出 - Android系统移植与平台开发(七)- Android系统的启动
  7. Android系统启动流程
  8. Android 根文件系统分析

随机推荐

  1. Android中的Context详解
  2. input系统一 loop线程的创建与运行
  3. Android shape 几种用法
  4. android监听短信
  5. Android:RelativeLayout布局的相关属性介
  6. 传智播客Android视频教程——第四天
  7. android 字体总结
  8. Android(安卓)网络接口
  9. 【Android】Android部分问题记录
  10. [Android NDK] Android NDK开发环境配置