1。(唯一)不重复类:
package com.xxx.xxx.util;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Build;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import java.security.MessageDigest;
import java.util.Locale;
import java.util.UUID;
public class DeviceIdUtil {
/**
* 获得设备硬件标识
*
* @param context 上下文
* @return 设备硬件标识
*/
public static String getDeviceId(Context context) {
StringBuilder sbDeviceId = new StringBuilder();
//获得设备默认IMEI(>=6.0 需要ReadPhoneState权限)
String imei = getIMEI(context);
//获得AndroidId(无需权限)
String androidid = getAndroidId(context);
//获得设备序列号(无需权限)
String serial = getSERIAL();
//获得硬件uuid(根据硬件相关属性,生成uuid)(无需权限)
String uuid = getDeviceUUID().replace("-", "");
//追加imei
if (imei != null && imei.length() > 0) {
sbDeviceId.append(imei);
sbDeviceId.append("|");
}
//追加androidid
if (androidid != null && androidid.length() > 0) {
sbDeviceId.append(androidid);
sbDeviceId.append("|");
}
//追加serial
if (serial != null && serial.length() > 0) {
sbDeviceId.append(serial);
s