android 自动生成id,《转载》生成Android设备的唯一ID

2023-05-16

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

TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);

String szImei = TelephonyMgr.getDeviceId();

权限

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地址:市面上大部分的应用不使用蓝牙,如果你的应用根本没用蓝牙,而你却和用户要了蓝牙权限的,那你很可疑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 自动生成id,《转载》生成Android设备的唯一ID 的相关文章

随机推荐