Android设置系统时间

AlarmManager方式

/*****************************************************************************
     Prototype    : getAndroidSysteTime
     Description  : get android SystemTime
     Input        : None
     Output       : None
     Return Value : public
     Calls        : 
     Called By    : 
     
      History        :
      1.Date         : 2018/9/28
        Author       : 
        Modification : Created function

    *****************************************************************************/
    public void getAndroidSysteTime(){
        try {
            int zone = (TimeZone.getDefault().getRawOffset()) / 3600000;
            int mode = getHourMode();

            if (mode != McuTimeInfo.ClockMode.INVALID.mode) {
                int year = Calendar.getInstance().get(Calendar.YEAR);
                int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
                int day = Calendar.getInstance().get(Calendar.DATE);
                int hour = Calendar.getInstance().get(Calendar.HOUR);
                int minute = Calendar.getInstance().get(Calendar.MINUTE);
                int second = Calendar.getInstance().get(Calendar.SECOND);

                // 24小时制
                if (McuTimeInfo.ClockMode.ROUND_HOUR.mode == mode) {
                    hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
                }
                
                Log.d(TAG, "get android system time,zone:" + zone + ",mode: " + mode + "," + year + "/"
                        + month + "/" + day + "," + hour + ":" + minute + ":"+ second);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /*****************************************************************************
     Prototype    : setAndroidSystemTime
     Description  : set android system time
     Input        : int mode    
                    int year    
                    int month   
                    int day     
                    int hour    
                    int minute  
                    int second  
     Output       : None
     Return Value : public
     Calls        : 
     Called By    : 
     
      History        :
      1.Date         : 2018/9/28
        Author       : 
        Modification : Created function

    *****************************************************************************/
    public void setAndroidSystemTime(int mode, int year, int month,
                    int day, int hour, int minute, int second){
        Calendar c = Calendar.getInstance();
        if (mode == Calendar.AM) {
                c.set(Calendar.AM_PM, Calendar.AM);
        } else {
                c.set(Calendar.AM_PM, Calendar.PM);
        }
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        c.set(Calendar.DAY_OF_MONTH, day);

        c.set(Calendar.HOUR, hour);//HOUR_OF_DAY
        c.set(Calendar.MINUTE, minute);
        c.set(Calendar.SECOND, second);
        c.set(Calendar.MILLISECOND, 0);

        long when = c.getTimeInMillis();

        if (when / 1000 < Integer.MAX_VALUE) {
            ((AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE)).setTime(when);
        }
   }

###需要配置权限,并且app要具有系统权限

<uses-permission android:name="android.permission.SET_TIME" />
<uses-permission android:name="android.permission.SET_TIME_ZONE" />

Android 网路校时 NetworkTimeUpdateService

<!-- Remote server that can provide NTP responses. -->
 <string translatable="false" name="config_ntpServer">time.android.com</string>
 <!-- Normal polling frequency in milliseconds -->
 <integer name="config_ntpPollingInterval">86400000</integer>
 <!-- Try-again polling interval in milliseconds, in case the network request failed -->
 <integer name="config_ntpPollingIntervalShorter">60000</integer>
 <!-- Number of times to try again with the shorter interval, before backing
off until the normal polling interval. A value < 0 indicates infinite. -->
 <integer name="config_ntpRetry">3</integer>
  <!-- If the time difference is greater than this threshold in milliseconds,
 then update the time. -->
 <integer name="config_ntpThreshold">5000</integer>
  <!-- Timeout to wait for NTP server response in milliseconds. -->
 <integer name="config_ntpTimeout">5000</integer>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值