特殊应用需要白名单机器才能访问
官方链接: Android Identifying App Installations
需要在Manifest中申请android.permission.READ_PHONE_STATE
直接贴代码:
来自:http://blog.suchasplus.com/2015/02/android-get-imei-and-ANDROID-ID.html
- 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://www.phpxs.com/code/1002354/