Android 唯一设备号生成方案

来源:互联网 发布:链轮设计软件 编辑:程序博客网 时间:2024/06/07 00:01

以下是一种比较靠谱的解决方案。通过获取到 IMEI、AndroidId、macAddress 进行拼接,再将拼接结果进行 MD5 转换,那么就可以得到一串 32 个字符的 16 进制数据,这时候也能够保证得到的设备唯一标识为统一的长度。这样也能够很大程度上保证你最终得到的唯一标识不为空,因为这三个值同时为空几乎不大可能。

public static String generateUniqueDeviceId(){       Context context = MyApplication.getInstance();       String imei = "";       String androidId = "";       String macAddress = "";       TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(TELEPHONY_SERVICE);       if (telephonyManager != null) {           imei = telephonyManager.getDeviceId();       }       ContentResolver contentResolver = context.getContentResolver();       if (contentResolver != null) {           androidId = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID);       }       WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);       if (wifiManager != null) {           macAddress = wifiManager.getConnectionInfo().getMacAddress();       }       StringBuilder longIdBuilder = new StringBuilder();       if (imei != null) {           longIdBuilder.append(imei);       }       if (androidId != null) {           longIdBuilder.append(androidId);       }       if (macAddress != null) {           longIdBuilder.append(macAddress);       }          return MD5Utils.toMd5(longIdBuilder.toString());   }

获取 IMEI 需要加入权限 android.permission.READ_PHONE_STATE
获取 macAddress 需要加入权限 android.permission.ACCESS_WIFI_STATE

0 0
原创粉丝点击