Android P获取系统IMEI码、ANDROID_ID

IMEI

IMEI国际移动设备识别码(IMEI:International Mobile Equipment Identity)是区别移动设备的标志,储存在移动设备中,可用于监控被窃或无效的移动设备。它与每台手机一一对应,而且该码是全世界唯一的。每一部手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受。

Android获取IMEI码方式:
单卡:

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)
tm.getImei();

双卡:

TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
	for (int slot = 0; slot < tm .getPhoneCount(); slot++) {
            String imei = tm .getImei(slot);
}

ANDROID_ID

64位数字(表示为十六进制字符串),对于app-signing键,用户和设备的每个组合都是唯一的。ANDROID_ID通过签名密钥和用户确定范围的值。如果在设备上执行恢复出厂设置或APK签名密钥更改,则该值可能会更改。

64位数字(表示为十六进制字符串)是在用户首次设置设备时随机生成的,并且应该在用户设备的生命周期内保持不变。在具有 多个用户的设备上 ,每个用户都显示为完全独立的设备,因此该ANDROID_ID值对每个用户都是唯一的。

常量值:“android_id”

Android获取ANDROID_ID方式:

String ANDROID_ID = Settings.System.getString(getContentResolver(),Settings.System.ANDROID_ID);

adb获取ANDROID_ID:

adb shell settings get secure android_id

注意两者的区别:
IMEI,即所谓的DeviceID,是设备唯一的ID,是固定不变的;
ANDROID_ID,是随系统变化的,是系统唯一的ID,是系统第一次启动时随机产生的64bit数,重新刷系统后,会变化。

你可能感兴趣的:(Android,系统)