1. 程式人生 > 其它 >android開發 獲取裝置唯一ID及當前系統時間的工具類

android開發 獲取裝置唯一ID及當前系統時間的工具類

技術標籤:Androidjavaandroidjava

Android 獲取裝置唯一ID及當前系統時間

import android.annotation.SuppressLint;
import android.os.Build;
import java.util.UUID;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DevicesId {
     /**
	 * 獲取裝置唯一ID
	 * @return
	 */
	@SuppressLint("MissingPermission"
) public static String getUUID() { String serial = null; String m_szDevIDShort = "35" + Build.BOARD.length() % 10 + Build.BRAND.length() % 10 + Build.CPU_ABI.length() % 10 + Build.DEVICE.length() % 10 + Build.DISPLAY.length() % 10 + Build.HOST.length() % 10 + Build.ID.length
() % 10 + Build.MANUFACTURER.length() % 10 + Build.MODEL.length() % 10 + Build.PRODUCT.length() % 10 + Build.TAGS.length() % 10 + Build.TYPE.length() % 10 + Build.USER.length() % 10; //13 位 try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { serial = android.os.Build.getSerial
(); } else { serial = Build.SERIAL; } //API>=9 使用serial號 return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString(); } catch (Exception exception) { //serial需要一個初始化 serial = "serial"; // 隨便一個初始化 } //使用硬體資訊拼湊出來的15位號碼 return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString(); } /** * 獲取當前的時間 * * @return */ public static String getTime() { Date date = new Date();// 建立一個時間物件,獲取到當前的時間 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 設定時間顯示格式 String CurrentTime = sdf.format(date); return CurrentTime; } }

任意位置獲取呼叫方式

String uuid = "裝置ID:"+IpUtils.getUUID();
System.out.println(uuid);
//獲取到的裝置ID結果:00000000-7612-3b92-0000-000012e8d9a8

String time ="當前時間:"+ IpUtils.getTime();
System.out.println(time);
//獲取到的當前時間結果:2021-01-23 13:32:23

雖然由於唯一識別符號許可權的更改會導致android.os.Build.getSerial()返回unknown,但是由於m_szDevIDShort是由硬體資訊拼出來的,所以仍然保證了UUID的唯一性和永續性。
經測試上述方法完全相同的手機有可能重複,網上還有其他方案比如androidID,但是androidID可能由於機型原因返回null,所以個人任務兩種方法半斤八兩。裝置ID的獲取一個版本比一個版本艱難,如果有好的方法歡迎指出。
minSDK警告
在 Android Q 中,當用戶首次執行以 Android 6.0(API 級別 23)以下的版本為目標平臺的任何應用時,Android平臺會向用戶發出警告。
如果此應用要求使用者授予許可權,則系統會先向使用者提供調整應用許可權的機會,然後才會允許此應用首次執行。
谷歌要求執行在Q裝置上的應用targetSDK>=23,不然會向用戶發出警告。

參考出處:https://www.cnblogs.com/liyanyan665/p/11535831.html