android手机获取唯一标识的方法
获取手机唯一标识
拼接的方式获取手机唯一标识
第一种方式是获取IMEI,但是有的手机如果不是正品的话,就获取不到所以通过这一种方式还是会出现有的设备是没有唯一标识的
第二种方式获取手机卡的序列号,当然这种也不是唯一的,因为有的手机是双卡双待的所以可能会出现空的情况
第三种方式是万能的也就是UUID,随机生成一个标识,但是必须保存在本地,防止下一次进入的时候再次生成随机码
进行三层判断,来获取手机的唯一标识。
//获取手机的唯一标识
publicStringgetPhoneSign(){
StringBuilderdeviceId=newStringBuilder();
//渠道标志
deviceId.append("a");
try{
//IMEI(imei)
TelephonyManagertm=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
Stringimei=tm.getDeviceId();
if(!TextUtils.isEmpty(imei)){
deviceId.append("imei");
deviceId.append(imei);
returndeviceId.toString();
}
//序列号(sn)
Stringsn=tm.getSimSerialNumber();
if(!TextUtils.isEmpty(sn)){
deviceId.append("sn");
deviceId.append(sn);
returndeviceId.toString();
}
//如果上面都没有,则生成一个id:随机码
Stringuuid=getUUID();
if(!TextUtils.isEmpty(uuid)){
deviceId.append("id");
deviceId.append(uuid);
returndeviceId.toString();
}
}catch(Exceptione){
e.printStackTrace();
deviceId.append("id").append(getUUID());
}
returndeviceId.toString();
}
/**
*得到全局唯一UUID
*/
privateStringuuid;
publicStringgetUUID(){
SharedPreferencesmShare=getSharedPreferences("uuid",MODE_PRIVATE);
if(mShare!=null){
uuid=mShare.getString("uuid","");
}
if(TextUtils.isEmpty(uuid)){
uuid=UUID.randomUUID().toString();
mShare.edit().putString("uuid",uuid).commit();
}
returnuuid;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。