翰林优商.apk(点击下载) / DeviceIdUtil.java


package com.sjm.sjmdsp.core.utils;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import java.security.MessageDigest;
import java.util.Locale;
import java.util.UUID;
import kotlin.UByte;

public class DeviceIdUtil {
    private static String sjm_UUID_KEY = "sjm_UUID_VALUE";
    private static String sjm_UUID_SP_NAME = "sjm_CONFIG_UUID";

    public static String getDeviceId(Context context) {
        StringBuilder sb = new StringBuilder();
        String imei = getIMEI(context);
        String androidId = getAndroidId(context);
        String serial = getSERIAL();
        String replace = getDeviceUUID(context).replace("-", "");
        if (imei != null && imei.length() > 0) {
            sb.append(imei);
            sb.append("|");
        }
        if (androidId != null && androidId.length() > 0) {
            sb.append(androidId);
            sb.append("|");
        }
        if (serial != null && serial.length() > 0) {
            sb.append(serial);
            sb.append("|");
        }
        if (replace != null && replace.length() > 0) {
            sb.append(replace);
        }
        if (sb.length() > 0) {
            try {
                String bytesToHex = bytesToHex(getHashByString(sb.toString()));
                if (bytesToHex != null && bytesToHex.length() > 0) {
                    return bytesToHex;
                }
            } catch (Exception unused) {
            }
        }
        return UUID.randomUUID().toString().replace("-", "");
    }

    public static String getIMEI(Context context) {
        try {
            return ((TelephonyManager) context.getSystemService("phone")).getDeviceId();
        } catch (Exception unused) {
            return "";
        }
    }

    private static String getAndroidId(Context context) {
        try {
            return Settings.Secure.getString(context.getContentResolver(), "android_id");
        } catch (Exception unused) {
            return "";
        }
    }

    private static String getSERIAL() {
        try {
            return Build.SERIAL;
        } catch (Exception unused) {
            return "";
        }
    }

    public static String getDeviceUUID(Context context) {
        String str;
        SharedPreferences sharedPreferences = null;
        try {
            sharedPreferences = context.getSharedPreferences(sjm_UUID_SP_NAME, 0);
            str = sharedPreferences.getString(sjm_UUID_KEY, "");
        } catch (Exception unused) {
            str = "";
        }
        if (str.length() > 0) {
            return str;
        }
        String lowerCase = UUID.randomUUID().toString().replace("-", "").toLowerCase();
        if (sharedPreferences != null) {
            try {
                sharedPreferences.edit().putString(sjm_UUID_KEY, lowerCase).apply();
            } catch (Exception unused2) {
            }
        }
        return lowerCase;
    }

    private static byte[] getHashByString(String str) {
        try {
            MessageDigest instance = MessageDigest.getInstance("SHA1");
            instance.reset();
            instance.update(str.getBytes("UTF-8"));
            return instance.digest();
        } catch (Exception unused) {
            return "".getBytes();
        }
    }

    private static String bytesToHex(byte[] bArr) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bArr) {
            String hexString = Integer.toHexString(b & UByte.MAX_VALUE);
            if (hexString.length() == 1) {
                sb.append("0");
            }
            sb.append(hexString);
        }
        return sb.toString().toUpperCase(Locale.CHINA);
    }
}