部落格: 安卓之家 微博: 追風917 CSDN: 蔣朋的家 簡書: 追風917
前言
通常,我們來獲取系統時間來做一些事情,那麼,如何設定系統時間呢?
問題丟擲來,解決方法也就應運而生了。
解決方法
命令列
首先我想到的是手機root,然後命令列
date -s 要設定的時間複製程式碼
關於如何呼叫命令列,請點選:安卓程式中呼叫 linux 命令
如果手機沒 root 怎麼破呢,繼續往下看吧。
獲取系統許可權修改
沒有 root 的話,可以獲取系統許可權來設定,怎麼設定呢,這個文章已經給出:
就是系統簽名了。
這裡說明一點,由於在manifest檔案加入android:sharedUserId="android.uid.system"這個屬性,導致 Android Studio 等工具,直接編譯執行會出現此提示窗:
多次點選 ok 無效,因為設定了系統屬性,所以,下次你執行別的專案,出現此情況時,可以檢查下時候新增了該屬性的,有的話,去掉,再編譯執行就可以的。
獲取了許可權了,一行程式碼就可以設定時間:
SystemClock.setCurrentTimeMillis(millTime);複製程式碼
引數是1970後跑過的毫秒數。
那麼問題來了,如何獲取這個時間呢,下面有三種方法:
1.gps時間
可以通過 gps 定位,獲取 gps 時間,此處原生安卓程式碼,百度,高德都可實現,具體請參考相應 api。
2.網路
找到一篇文章,是這麼個姿勢:
很巧妙,有木有啊,讀取網站時間,哈哈,有個問題,網站不穩定時,會出錯的。
3.TrueTime
這個是今天在 GitHub 上發現的庫,可以設定 NTP 伺服器,來獲取時間,使用也很簡單
//設定中科大ftp伺服器
TrueTime.build().withNtpHost("time.ustc.edu.cn").initialize();
Date date = TrueTime.now();複製程式碼
然後 date.getTime() 獲取毫秒數,設定時間就可以了。
最後,非常感謝您的閱讀,有任何疑問,可以後面評論,謝謝!
神奇的安卓開發網站:androidcat.com/
安卓開源庫收集整理:github.com/XXApple/And…
分享是一種美德,更是一種生活方式!!
也許你會說我是一個夢想者,但我不是唯一的一個。
悅分享,越快樂^_^
歡迎交流,轉載請註明出處,謝謝!