微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android app校正系统时钟

一、获取权限,使我们的app变成特权app,可参考https://www.cnblogs.com/javabull/p/12115397.html

二、编写逻辑代码

 1 import java.net.URL;
 2 import java.net.URLConnection;
 3 
 4 public class SynchronizeTimeThread implements Runnable {
 5 
 6     @Override
 7     public void run() {
 8         while (true){
 9             visitURL("https://www.baidu.com/");
10             try {
11                 Thread.sleep(360000);//定时更新
12             } catch (InterruptedException e) {
13                 e.printstacktrace();
14             }
15         }
16     }
17 
18     /**
19      * 网址访问
20      *
21      * @param url 网址
22      * @return urlDate 对象网址时间
23      * 
24      */
25     private void visitURL(String url) {
26         try {
27             URL url1 = new URL(url);
28             URLConnection conn = url1.openConnection();  //生成连接对象
29             conn.connect();  //连接对象网页
30             Long date = conn.getDate();
31             if (date!=null){
32                 SystemClock.setCurrentTimeMillis(date);
33             }
34         } catch (Exception e) {
35             e.printstacktrace();
36             37         }
38     }
39 }

 

在MainActivity的onCreate中开启线程来获取网页上的时间,但要注意的是,我们还需要设置时区。

1  //更新系统时间
2     private void toSynchronizeSystemTime(){
3         AlarmManager mAlarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);//获取服务
4         mAlarmManager.setTimeZone("Asia/Shanghai");//上海
5         Thread thread = new Thread(new SynchronizeTimeThread());
6         thread.setName("ToGetTime");
7         thread.start();
8     }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐