1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
frameworks/base/core/res/res/values/config.xml
frameworks/base/core/java/android/net/SnapClient.java long requestTime = System.currentTimeMillis();//请求时间为机器当前时间 long requestTicks = SystemClock.elapsedRealtime();//请求时间节点为请求时机器开机时间 long responseTicks = SystemClock.elapsedRealtime();//响应时间节点为响应时机器开机时间 long responseTime = requestTime + (responseTicks - requestTicks);//响应时间为请求时间+请 求时长 long originateTime = readTimeStamp(buffer, ORIGINATE_TIME_OFFSET);//原时间偏移 long receiveTime = readTimeStamp(buffer, RECEIVE_TIME_OFFSET);//接收到时间偏移 long transmitTime = readTimeStamp(buffer, TRANSMIT_TIME_OFFSET);//传输时间偏移 long roundTripTime = responseTicks - requestTicks - (transmitTime - receiveTime);//路由往返时间为 请求时长- (传输时间偏移-接收时间偏移) if (originateTime <= 0) { Log.d(TAG, "1->originateTime: " + originateTime+" requestTime:"+requestTime); clockOffset = ((receiveTime - requestTime) + (transmitTime - responseTime)) / 2; } else { clockOffset = ((receiveTime - originateTime) + (transmitTime - responseTime)) / 2; } mNtpTime = responseTime + clockOffset; mNtpTimeReference = responseTicks; mRoundTripTime = roundTripTime; 对于android 自动对时的原生逻辑,在RK,mtk,高通的方案上都出现过概率自动对时不成功的原因,原因有如下几点: 1、NTP服务器原生是2.android.pool.ntp.org,而请求对时的原因是基于有可用的网络情况下,通过此域名向DNS发送域名解析请求获取代理服务器地址,得到代理地址后建立socket发送对时请求,实际情况有时候返回的代理地址是非法的,所以不会响应对时请求消息,或者返回错误的时间; 2、自身网络问题; 3、请求间隔时间过短,请求过于频繁。 解决方案是: 1、将NTP服务器更改为国内NTP服务站点域名;(最好多建立几个轮询) 2、当连续3此发送对时请求都没有得到响应没建议换一个NTP域名重新发送请求; 3、对于获取到异常时间做兼容处理。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1162 浏览 0 评论
1330 浏览 1 评论
1015 浏览 1 评论
2345 浏览 1 评论
3671 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 02:42 , Processed in 0.442122 second(s), Total 44, Slave 36 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号