清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
特殊应用需要白名单机器才能访问
官方链接: Android Identifying App Installations
需要在Manifest中申请android.permission.READ_PHONE_STATE
直接贴代码:
public class helper { private static String TAG="util.helper"; private static String SYS_ID = null; public static String getUniqDeviceId(Context context) { String id = getUniqueID(context); if (id == null) id = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID); return id; } public static String getStringIntegerHexBlocks(int value) { String result = ""; String string = Integer.toHexString(value); int remain = 8 - string.length(); char[] chars = new char[remain]; Arrays.fill(chars, '0'); string = new String(chars) + string; int count = 0; for (int i = string.length() - 1; i >= 0; i--) { count++; result = string.substring(i, i + 1) + result; if (count == 4) { result = "-" + result; count = 0; } } if (result.startsWith("-")) { result = result.substring(1, result.length()); } return result; } private static String getUniqueID(Context context) { if ( SYS_ID != null ) { return SYS_ID; } String telephonyDeviceId; String androidDeviceId; String error = "0000-0000-0000-0000"; // get telephony id try { final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); telephonyDeviceId = tm.getDeviceId(); if (telephonyDeviceId == null) { Log.e(TAG, "Get TelephonyManager DeviceId(IMEI) Error"); return error; } Log.e(TAG, "TelephonyManager getDeviceId: " + telephonyDeviceId); } catch (Exception e) { Log.e(TAG, "Get TelephonyManager DeviceId(IMEI) Error" + e.getMessage()); return error; } // get internal android device id try { androidDeviceId = android.provider.Settings.Secure.getString(context.getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); if (androidDeviceId == null) { Log.e(TAG, "Get androidDeviceId Error"); return error; } Log.e(TAG, "android.provider.Settings.Secure.ANDROID_ID : " + androidDeviceId ); } catch (Exception e) { Log.e(TAG, "Get androidDeviceId Error"+e.getMessage()); return error; } // build up the uuid try { String id = getStringIntegerHexBlocks(androidDeviceId.hashCode()) + "-" + getStringIntegerHexBlocks(telephonyDeviceId.hashCode()); SYS_ID = id; Log.e(TAG, SYS_ID); return SYS_ID; } catch (Exception e) { return error; } } }
来自:http://blog.suchasplus.com/2015/02/android-get-imei-and-ANDROID-ID.html