android手機獲取唯一標(biāo)識的方法
獲取手機唯一標(biāo)識
拼接的方式獲取手機唯一標(biāo)識
第一種方式是獲取IMEI,但是有的手機如果不是正品的話,就獲取不到所以通過這一種方式還是會出現(xiàn)有的設(shè)備是沒有唯一標(biāo)識的
第二種方式獲取手機卡的序列號,當(dāng)然這種也不是唯一的,因為有的手機是雙卡雙待的所以可能會出現(xiàn)空的情況
第三種方式是萬能的也就是UUID,隨機生成一個標(biāo)識,但是必須保存在本地,防止下一次進入的時候再次生成隨機碼
進行三層判斷,來獲取手機的唯一標(biāo)識。
//獲取手機的唯一標(biāo)識
public String getPhoneSign(){
StringBuilder deviceId = new StringBuilder();
// 渠道標(biāo)志
deviceId.append("a");
try {
//IMEI(imei)
TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
String imei = tm.getDeviceId();
if(!TextUtils.isEmpty(imei)){
deviceId.append("imei");
deviceId.append(imei);
return deviceId.toString();
}
//序列號(sn)
String sn = tm.getSimSerialNumber();
if(!TextUtils.isEmpty(sn)){
deviceId.append("sn");
deviceId.append(sn);
return deviceId.toString();
}
//如果上面都沒有, 則生成一個id:隨機碼
String uuid = getUUID();
if(!TextUtils.isEmpty(uuid)){
deviceId.append("id");
deviceId.append(uuid);
return deviceId.toString();
}
} catch (Exception e) {
e.printStackTrace();
deviceId.append("id").append(getUUID());
}
return deviceId.toString();
}
/**
* 得到全局唯一UUID
*/
private String uuid;
public String getUUID(){
SharedPreferences mShare = 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();
}
return uuid;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Jetpack?Compose實現(xiàn)對角線滾動效果
這篇文章主要為大家詳細介紹了如何利用Jetpack?Compose實現(xiàn)一個簡單的對角線滾動效果,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下2023-02-02
Android顏色處理SweepGradient掃描及梯度渲染示例
這篇文章主要為大家介紹了Android顏色處理SweepGradient掃描渲染及梯度渲染示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Android基于Sensor感應(yīng)器獲取重力感應(yīng)加速度的方法
這篇文章主要介紹了Android基于Sensor感應(yīng)器獲取重力感應(yīng)加速度的方法,涉及Android使用Sensor類實現(xiàn)感應(yīng)重力變化的功能,需要的朋友可以參考下2015-12-12
android 拷貝sqlite數(shù)據(jù)庫到本地sd卡的方法
下面小編就為大家?guī)硪黄猘ndroid 拷貝sqlite數(shù)據(jù)庫到本地sd卡的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03

