獲取手機唯一識別碼
阿新 • • 發佈:2018-12-31
獲取手機的IMEI號再加密計算然後返回package com.shkf.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import android.annotation.SuppressLint; import android.content.Context; import android.os.Build; import android.provider.Settings; public class GetMacUtil { /** * 獲取手機IMEI號 * * 需要動態許可權: android.permission.READ_PHONE_STATE */ @SuppressLint("NewApi") public static String getUniqueId(Context context){ String androidID = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); String id = androidID + Build.SERIAL; try { return toMD5(id); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); return id; } } private static String toMD5(String text) throws NoSuchAlgorithmException { //獲取摘要器 MessageDigest MessageDigest messageDigest = MessageDigest.getInstance("MD5"); //通過摘要器對字串的二進位制位元組陣列進行hash計算 byte[] digest = messageDigest.digest(text.getBytes()); StringBuilder sb = new StringBuilder(); for (int i = 0; i < digest.length; i++) { //迴圈每個字元 將計算結果轉化為正整數; int digestInt = digest[i] & 0xff; //將10進位制轉化為較短的16進位制 String hexString = Integer.toHexString(digestInt); //轉化結果如果是個位數會省略0,因此判斷並補0 if (hexString.length() < 2) { sb.append(0); } //將迴圈結果新增到緩衝區 sb.append(hexString); } //返回整個結果 return sb.toString(); } }
IMEI