package com.suning.mobile.epa; import java.security.MessageDigest;import java.security.NoSuchAlgorithmException; import android.content.Context;import android.os.Build;import android.provider.Settings.Secure;import android.telephony.TelephonyManager; public class DeviceFactoty { // buildId public String m_szDevIDShortMaker() { String m_szDevIDShort = "35"; m_szDevIDShort += 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 + ""; return m_szDevIDShort; } public String currentDeviceMark(Context context) { final TelephonyManager tm = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); final String tmDevice, tmSerial, androidId; tmDevice = "" + tm.getDeviceId(); tmSerial = "" + tm.getSimSerialNumber(); androidId = "" + android.provider.Settings.Secure.getString(EPApp.getApp() .getContentResolver(), Secure.ANDROID_ID); String serial = ""; if (Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO){ serial = Build.SERIAL; } String m_szLongID = tmDevice + tmSerial + androidId + serial + m_szDevIDShortMaker(); MessageDigest m = null; try { m = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } m.update(m_szLongID.getBytes(), 0, m_szLongID.length()); // get md5 bytes byte p_md5Data[] = m.digest(); // create a hex string String m_szUniqueID = new String(); for (int i = 0; i < p_md5Data.length; i++) { int b = (0xFF & p_md5Data[i]); // if it is a single digit, make sure it have 0 in front (proper padding) if (b <= 0xF) m_szUniqueID += "0"; // add number to string m_szUniqueID += Integer.toHexString(b); } // hex string to uppercase return m_szUniqueID = m_szUniqueID.toUpperCase(); }}