当前位置:   article > 正文

Android修改NTP服务器为windows,使用多个ntp服务器轮询同步时间_backupntpservers

backupntpservers
  •   String[] backupNtpServers = new String[]{
    
    • 1
  •           "tw.pool.ntp.org",
    
    • 1
  •           "time.nist.gov",
    
    • 1
  •           "time-a.nist.gov"
    
    • 1
  •   };
    
    • 1
  •   int index = -1;
    
    • 1

private NtpTrustedTime(String server, long timeout) {

if (LOGD) Log.d(TAG, "creating NtpTrustedTime using " + server);

@@ -101,15 +108,28 @@ public class NtpTrustedTime implements TrustedTime {

if (LOGD) Log.d(TAG, “forceRefresh() from cache miss”);

final SntpClient client = new SntpClient();

  •    if (client.requestTime(mServer, (int) mTimeout)) {
    
    • 1
  •        mHasCache = true;
    
    • 1
  •        mCachedNtpTime = client.getNtpTime();
    
    • 1
  •        mCachedNtpElapsedRealtime = client.getNtpTimeReference();
    
    • 1
  •        mCachedNtpCertainty = client.getRoundTripTime() / 2;
    
    • 1
  •        return true;
    
    • 1
  •    } else {
    
    • 1
  •        return false;
    
    • 1
  •    }
    
    • 1
  •           boolean result = false;
    
    • 1
  •           while(!(result = client.requestTime(mServer, (int)mTimeout)) && index < (backupNtpServers.length-1)){
    
    • 1
  •           index++;
    
    • 1
  •           mServer = backupNtpServers[index];
    
    • 1
  •    }   
    
    • 1
  •    index = -1;
    
    • 1
  •           Resources res = sContext.getResources();
    
    • 1
  •           String defaultServer = res.getString(
    
    • 1
  •                com.android.internal.R.string.config_ntpServer);
    
    • 1
  •           String secureServer = Settings.Global.getString(
    
    • 1
  •                 sContext.getContentResolver(), Settings.Global.NTP_SERVER);
    
    • 1
  •           mServer  = secureServer != null ? secureServer : defaultServer;
    
    • 1
  •           if(result){
    
    • 1
  •                   mHasCache = true;
    
    • 1
  •                   mCachedNtpTime = client.getNtpTime();
    
    • 1
  •                   mCachedNtpElapsedRealtime = client.getNtpTimeReference();
    
    • 1
  •                   mCachedNtpCertainty = client.getRoundTripTime() / 2;
    
    • 1
  •           }
    
    • 1
  •           return result;
    
    • 1

}

@Override

diff --git a/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xml

new file mode 100644

index 0000000…ee8306f

— /dev/null

+++ b/frameworks/base/packages/SettingsProvider/res/values/custom_defaults.xml

@@ -0,0 +1,7 @@

+<?xml version="1.0" encoding="utf-8"?>

+
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于Flutter的学习思路及方向,从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。
由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的
还有高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

跨平台开发:Flutter.png

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

链图片转存中…(img-WOhI4YdJ-1711779480288)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/797963
推荐阅读
相关标签
  

闽ICP备14008679号