美文网首页
《转载》生成Android设备的唯一ID

《转载》生成Android设备的唯一ID

作者: 混混_X | 来源:发表于2016-10-19 11:37 被阅读131次

1.最简单的方式:获取IMEI号

TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String szImei = TelephonyMgr.getDeviceId(); 

权限<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2.最保险的方式:通过UUID获取

//获得独一无二的Psuedo ID
public 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"; // 随便一个初始化
 } 
return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();

3.为毛其他有局限性:

  • 用户手机号:用户可以更改他们的手机号 (非常不可靠)
  • Android ID:这个是不靠谱的,因为有时候它是null的,文档中明确说明,如果你恢复了出厂设置,那他就会改变的。而且如果你root了手机,你也可以改变这个ID
    String m_szAndroidID = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
    它返回的是9774d56d682e549c这样一串东西,倒是不需要什么权限.
  • WLAN MAC地址:这也可以得到一个独一无二的ID号,返回的是 00:11:22:33:44:55 。但是当没有wifi的时候,我们是无法获得数据的。
  • 蓝牙MAC地址:市面上大部分的应用不使用蓝牙,如果你的应用根本没用蓝牙,而你却和用户要了蓝牙权限的,那你很可疑。

特别声明,此文系转载:http://www.bkjia.com/Androidjc/1036506.html

相关文章

网友评论

      本文标题:《转载》生成Android设备的唯一ID

      本文链接:https://www.haomeiwen.com/subject/inhxuttx.html