⑴ 技術層面上,安卓系統如何獲取正確的時間
安卓系統獲取正確時間有多種途徑。即使在斷網且系統自帶時間不準確,或設備管理員策略限制了自動校正與更改時區時,仍可通過以下方法獲取精確時間。
首先,android系統自帶API,如java.util.Date或java.time.LocalDateTime等,可用於獲取當前日期與時間。這些API的時間來源通常與硬體時鍾同步,不依賴網路連接。
其次,NTP(Network Time Protocol)協議在無網路情況下仍能通過本地時間伺服器同步時間。利用NTP客戶端庫,如TrueTime或Java NTP,可實現這一功能。
此外,應用程序可以通過在本地存儲中保存時間戳來獲取當前時間。安裝時獲取當前時間戳並存儲在本地資料庫或文件中,需要時間時讀取時間戳加上設備時間偏移量計算當前時間。
對於「今日水印相機」應用,它使用上述方法之一獲取時間戳和地理位置信息。應用獲取相機拍攝時間與位置信息,存儲於照片中。照片上傳其他設備時,應用驗證時間戳與地理位置,通過網路驗證照片有效性。
⑵ 如何用android開發otp
otp從技術來分有三種形式, 時間同步、事件同步、挑戰/應答。
(1) 時間同步
原理是基於 動態令牌和 動態口令驗證伺服器的時間比對,基於 時間同步的 令牌,一般每60秒產生一個新口令,要求伺服器能夠十分精確的保持正確的時鍾,同時對其令牌的晶振頻率有嚴格的要求,這種技術對應的終端是硬體令牌。
(2)事件同步
基於事件同步的令牌,其原理是通過某一特定的事件次序及相同的種子值作為輸入,通過HASH演算法中運算出一致的密碼。
(3)挑戰/應答
常用於的網上業務,在網站/應答上輸入 服務端下發的 挑戰碼, 動態令牌輸入該挑戰碼,通過內置的演算法上生成一個6/8位的隨機數字,口令一次有效,這種技術目前應用最為普遍,包括刮刮卡、簡訊密碼、動態令牌也有挑戰/應答形式。
主流的動態令牌技術是時間同步和挑戰/應答兩種形式。
項目採用:
https://code.google.com/p/androidtoken/ 實現TOTP動態口令登錄
android token 該項目支持HOTP (事件令牌)和TOTP (時間令牌)規范
配置令牌支持:KeyUriFormat和QR碼,以及手動創建;
項目實現:
我這里採用添加方便的qr碼,也就是常見的二維碼來實現用戶通過手機來綁定一個token;
首先,需要有的就是伺服器端和客戶端都共有的一個seed。
private final static String NUM_CHAR = "0123456789";
private static int charLen = NUM_CHAR.length();
/**
* 根據系統時間獲得指定位數的隨機數
* @param randomNumberDigit 隨機數的位數
* @return 獲得的隨機數
*/
public static String getRandomNumber(int randomNumberDigit) {
long seed = System.currentTimeMillis();// 獲得系統時間,作為生成隨機數的種子
StringBuffer sb = new StringBuffer();// 裝載生成的隨機數
Random random = new Random(seed);// 調用種子生成隨機數
for (int i = 0; i < randomNumberDigit; i++) {
sb.append(NUM_CHAR.charAt(random.nextInt(charLen)));
}
return sb.toString();
}
⑶ 安卓手機怎樣使下載的時間軟體和系統時間保持同步
您好:
LG P970搭載的是一款基於androidOS2.2原生版本優化的智能系統,那麼 一般第三方軟體都是直接讀取系統時間 與其同步的,當然有些 如瀏覽器網頁顯示時間 可能是以internet時間為準的(這個是服|務器讀取 沒必要也不易改變);
如果你討厭時間不準的話,可以在設置==》時間和曰期==》自動(√)勾選打開,必要時要打開設置==》賬戶和同步==》後|台數據(√)勾選打開即可,當然 有些時間等混亂錯誤是因為 固件兼容性等埠等問題造成的,那麼請嘗試 升級你的LG P970到android2.3.6等最新穩定版本 即可。
祝您 愉快 =,=~ 如有其它問題 可直接網路hi我,使用qiú助 或 直接聯|系我們討論。如 想知道其他 最新資訊 可網路 鋼七連 終身 榮譽 團
⑷ 手機刷原生安卓系統不同步網路時間,怎麼修改來著
adb修改同步時間所用的伺服器,原生安裝用的國外的,
1. 手機root並開啟調試模式。
2. 電腦配置adb環境,打開命令行。
Android 7.0之前版本的系統,執行以下命令:
adb shell "settings put global captive_portal_server connect.rom.miui.com";
Android 7.0之後的版本需要執行下面的兩條命令:
adb shell "settings put global captive_portal_http_url http://connect.rom.miui.com/generate_204";
adb shell "settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204";
然後重啟,此時,應該去除了叉號或嘆號。
時間同步
adb shell settings put global ntp_server asia.pool.ntp.org
⑸ 做android開發,對時間有特別要求,請問怎樣讓手機時間與網路時間同步用程序開發而不是用其它軟體
android的安全機制是禁止你沒有root許可權的情況下更改時間的,你這么開發程序商用的話沒意義,畢竟大家手機不一定都root了,如果在你特殊用途 確定你使用的設備系統已經root了,那可以通過SystemClock.setCurrentTimeMillis()函數來修改系統時間