博客: 安卓之家 微博: 追風917 CSDN: 蔣朋的家 簡書: 追風917linux
一般,咱們來獲取系統時間來作一些事情,那麼,如何設置系統時間呢?android
問題拋出來,解決方法也就應運而生了。git
首先我想到的是手機root,而後命令行github
date -s 要設置的時間複製代碼
關於如何調用命令行,請點擊:安卓程序中調用 linux 命令api
若是手機沒 root 怎麼破呢,繼續往下看吧。服務器
沒有 root 的話,能夠獲取系統權限來設置,怎麼設置呢,這個文章已經給出:網絡
就是系統簽名了。oop
這裏說明一點,因爲在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…
分享是一種美德,更是一種生活方式!!
也許你會說我是一個夢想者,但我不是惟一的一個。
悅分享,越快樂^_^
歡迎交流,轉載請註明出處,謝謝!