/** * @param context 获取设备的唯一标识 * @return */ //354732081842957 @SuppressLint("MissingPermission") public static String getOnly(Context context) { try { //实例化TelephonyManager对象 TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String imei; //获取IMEI号 try { imei = telephonyManager.getDeviceId(); }catch (Exception e){ imei = getUUID(); } //在次做个验证,也不是什么时候都能获取到的啊 if (imei == null) { imei = ""; //android.provider.Settings; imei = Settings.Secure.getString(context.getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); if (TextUtils.isEmpty(imei)){ imei =Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); if (TextUtils.isEmpty(imei)){ imei = getUUID(); } } } return imei; } catch (Exception e) { e.printStackTrace(); String imei; final TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); assert mTelephony != null; if (mTelephony.getDeviceId() != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { imei = mTelephony.getImei(); }else { imei = mTelephony.getDeviceId(); } } else { imei = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); } if (TextUtils.isEmpty(imei)){ imei = getUUID(); } return imei; } } @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(); }
Android获取手机的唯一标识
于 2022-03-15 08:51:31 首次发布