安卓應用修改系統時間

博客: 安卓之家 微博: 追風917 CSDN: 蔣朋的家 簡書: 追風917linux

每日一景

前言


一般,咱們來獲取系統時間來作一些事情,那麼,如何設置系統時間呢?android

問題拋出來,解決方法也就應運而生了。git

解決方法


命令行

首先我想到的是手機root,而後命令行github

date -s 要設置的時間複製代碼

關於如何調用命令行,請點擊:安卓程序中調用 linux 命令api

若是手機沒 root 怎麼破呢,繼續往下看吧。服務器

獲取系統權限修改

沒有 root 的話,能夠獲取系統權限來設置,怎麼設置呢,這個文章已經給出:網絡

如何使Android應用程序獲取系統權限來修改系統時間工具

就是系統簽名了。oop

這裏說明一點,因爲在manifest文件加入android:sharedUserId="android.uid.system"這個屬性,致使 Android Studio 等工具,直接編譯運行會出現此提示窗:網站

error

屢次點擊 ok 無效,由於設置了系統屬性,因此,下次你運行別的項目,出現此狀況時,能夠檢查下時候添加了該屬性的,有的話,去掉,再編譯運行就能夠的。

獲取了權限了,一行代碼就能夠設置時間:

SystemClock.setCurrentTimeMillis(millTime);複製代碼

參數是1970後跑過的毫秒數。

那麼問題來了,如何獲取這個時間呢,下面有三種方法:

1.gps時間

能夠經過 gps 定位,獲取 gps 時間,此處原生安卓代碼,百度,高德均可實現,具體請參考相應 api。

2.網絡

找到一篇文章,是這麼個姿式:

獲取網絡時間(國家標準時間)

很巧妙,有木有啊,讀取網站時間,哈哈,有個問題,網站不穩定時,會出錯的。

3.TrueTime

地址:github.com/instacart/t…

這個是今天在 GitHub 上發現的庫,能夠設置 NTP 服務器,來獲取時間,使用也很簡單

//設置中科大ftp服務器
TrueTime.build().withNtpHost("time.ustc.edu.cn").initialize();
Date date = TrueTime.now();複製代碼

而後 date.getTime() 獲取毫秒數,設置時間就能夠了。

最後,很是感謝您的閱讀,有任何疑問,能夠後面評論,謝謝!

神奇的安卓開發網站:androidcat.com/

安卓開源庫收集整理:github.com/XXApple/And…

分享是一種美德,更是一種生活方式!!

也許你會說我是一個夢想者,但我不是惟一的一個。

悅分享,越快樂^_^

歡迎交流,轉載請註明出處,謝謝!

相關文章
相關標籤/搜索