Android能够作为唯一标识的

1、DEVICE_ID(推荐使用)
 首先得添加权限:<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  /*   
   * 唯一的设备ID:   
   * GSM手机的 IMEI 和 CDMA手机的 MEID.    
   * Return null if device ID is not available.   
   */    
   TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
   tm.getDeviceId();  
   
  IMEI国际移动设备识别码(IMEI:International Mobile Equipment Identification Number)是区别移动设备的标志。目前是用于GSM和WCDMA手机 
 MEID 移动设备识别码(Mobile Equipment Identifier)是CDMA手机的身份识别码,也是每台手机有唯一的识别码。用于CDMA制式的手机。MEID的数字范围是十六进制的,和IMEI的格式类似。
2、手机序列号
手机序列号可以在“关于手机——状态信息——序列号”看到
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get =c.getMethod("get", String.class);
  String  serial = (String)get.invoke(c, "ro.serialno");
Log.e("serial", ""+serial);
} catch (Exception e) {
e.printStackTrace();
}
3、ANDROID_ID
String android_id = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID);
ANDROID_ID是设备第一次启动时产生和存储的64bit的一个数,当设备被wipe后该数重置
ANDROID_ID似乎是获取Device ID的一个好选择,但它也有缺陷:
2.1、它在Android <=2.1 or Android >=2.3的版本是可靠、稳定的,但在2.2的版本并不是100%可靠的
2.2、在主流厂商生产的设备上,有一个很经常的bug,就是每个设备都会产生相同的ANDROID_ID:9774d56d682e549c
4、Installtion ID(UUID)
 UUID uuid = UUID.randomUUID();
 UUID是程序安装后第一次运行后生成一个ID实现的,但该方式跟设备唯一标识不一样,它会因为不同的应用程序而产生不同的ID,而不是设备唯一ID。因此经常用来标识在某个应用中的唯一ID(即Installtion ID),或者跟踪应用的安装数量。
5、SIM卡的序列号
TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);  
String simNum = tm.getSimSerialNumber();  
注意:如果没有插入SIM卡或者处于离线模式,getSimSerialNumber()获取的值是null
6、用户ID
TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);  
String subscriberId = tm.getSubscriberId():返回唯一用户ID,例如,将IMSI为一个GSM电话。需要权限READ_PHONE_STATE
注意:不推荐使用,网上查说是唯一用户标识,但我有一台手机返回null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值