Android开发——获取并生成唯一识别码

来源:互联网 发布:lol安妮舞会公主淘宝 编辑:程序博客网 时间:2024/06/06 06:21

方法一:不需要权限(推荐)

使用一些不需要权限的硬件设备码来生成Android设备的唯一识别码

//获得独一无二的Psuedo IDpublic static String getUniquePsuedoID() {       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 {        serial = android.os.Build.class.getField("SERIAL").get(null).toString();       //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();

方法二:在接受需要用户授权的情况下生成唯一识别码:

需要添加权限,当然也需要做动态权限适配。

<uses-permission android.permission.READ_PHONE_STATE/>

方法如下:

 public static String getAPPID(){        final TelephonyManager tm = (TelephonyManager) MyApplication.getContext().getSystemService(Context.TELEPHONY_SERVICE);        final String tmDevice, tmSerial, androidId;        tmDevice = "" + tm.getDeviceId();        tmSerial = "" + tm.getSimSerialNumber();        androidId = "" + android.provider.Settings.Secure.getString(MyApplication.getContext().getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);        UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());        return deviceUuid.toString();    }
1 0
原创粉丝点击