當前位置:首頁 » 安卓系統 » 獲取imeiandroid

獲取imeiandroid

發布時間: 2024-01-04 02:34:42

『壹』 如何獲取Android唯一標識

我剛好做過這方面的研究,直接拿我之前做過的筆記了,歡迎關注、採納、持續交流Andorid問題

一共有 五大方法:(推薦第五種)

1.設備ID(DEVICE_ID)

Android系統為開發者提供的用於標識手機設備的標識碼。它會根據不同的手機設備返回IMEI,MEID或者ESN碼(IMEI是手機的身份證,MEID是CDMA制式(電信運營的)的專用身份證;IMEI是15位,MEID是14位)。

  • l獲取方法

java">TelephonyManagertm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
StringDEVICE_ID=tm.getDeviceId();
  • l注意點:

沒有通話的硬體功能,無法獲得DEVICE_ID。

需要READ_PHONE_STATE許可權,部分用戶會懷疑軟體的安全性。

(Android 6.0 以上需要用戶手動賦予該許可權)

廠商定製系統中的Bug,可能是一串0或者一串*號。

2. SIM卡序列號

不同SIM卡的序列號不同

  • l獲取辦法

TelephonyManagertm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
StringsimSerialNum=tm.getSimSerialNumber();
  • l注意點

手機未裝SIM卡或者不可用時,返回 null.

也需要 READ_PHONE_STATE 許可權。


3. 設備序列號(SERIAL)

  • l獲取辦法

StringserialNum=android.os.Build.SERIAL;
  • l注意點

所有的CDMA 設備對於卻返回一個空值

Android系統2.3版本以上

4. ANDROID_ID

在設備首次啟動時,系統會隨機生成一個64位的數字,並把這個數字以16進制字元串的形式保存下來,這個16進制的字元串就是ANDROID_ID,當設備被wipe後該值會被重置。

  • l獲取辦法

StringANDROID_ID=System.getString(getContentResolver(),Settings.System.ANDROID_ID);
  • l注意點

定製系統的Bug:不同的設備可能會產生相同的,有些設備返回的值為null。

在 Android 4.2 及以上, 設備啟用多用戶功能後,每個用戶的 Android_ID 不相同。

部分設備的ANDROID_ID和TelephonyManager.getDeviceId()返回相同的值

5. 自定義UUID(本人推薦)

publicclassInstallation{
privatestaticStringsID=null;
="INSTALLATION";

(Contextcontext){
if(sID==null){
Fileinstallation=newFile(context.getFilesDir(),INSTALLATION);
try{
if(!installation.exists())writeInstallationFile(installation);
sID=readInstallationFile(installation);
}catch(Exceptione){
thrownewRuntimeException(e);
}
}
returnsID;
}

(Fileinstallation)throwsIOException{
RandomAccessFilef=newRandomAccessFile(installation,"r");
byte[]bytes=newbyte[(int)f.length()];
f.readFully(bytes);
f.close();
returnnewString(bytes);
}

(Fileinstallation)throwsIOException{
FileOutputStreamout=newFileOutputStream(installation);
Stringid=UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}

『貳』 如何獲取Android唯一標識

唯一ID即IMEI,獲取方式如下代碼:
TelephonyManagerTelephonyMgr=(TelephonyManager)getSystemService(TELEPHONY_SERVICE);
StringszImei=TelephonyMgr.getDeviceId();

『叄』 android 代碼獲取IMEI,IMSI都為空,怎麼解決

Android獲取IMSI和IMEI :

IMSI是一個唯一的數字,標識了GSM和UMTS 網路里的唯一一個用戶.

存儲 在手機的SIM卡里,它會通過手機發送到網路上。

IMEI也是一串唯一的數字,標識了GSM 和UMTS網路里的三星 Galaxy I9100.。

它通常被列印在手機里電池下面的那一面,撥 *#06# 也能看到它。

代碼:

這里是你在Android里讀出 唯一的 IMSI-ID/IMEI-ID 的方法。

Java:

StringmyIMSI=

android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI

);

//withinmyemulatoritreturns:310995000000000

StringmyIMEI=

android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI

);

//withinmyemulatoritreturns:000000000000000

手機號碼不是所有的都能獲取。只是有一部分可以拿到。這個是由於移動運營商沒有把手

機號碼的數據寫入到sim卡中。sim卡只有唯一的編號,供網路與設備識別那就是imsi號碼,手機的信號也可以說是通過這個號碼在網路中傳遞的,並不是手機號碼。

試想,你的sim丟失後,補辦一張新的會換號碼嗎? —不會就是因為在你的手機號碼對應的 imsi號在移動運營商中被修改成新sim卡的imsi號碼。

這個就像是一個變數,當移動運營商為它賦值了,它自然就會有值。不賦值自然為空。

/** * 獲得手機的一些標志符* *@paramc *@returnString 手機的類型 */

publicStringfetch_status(Contextc){

TelephonyManagertm=(TelephonyManager)c

.getSystemService(Context.TELEPHONY_SERVICE);//

Stringstr="";

StringIMSI=tm.getSubscriberId();

str+="DeviceId(IMEI)="+tm.getDeviceId()+"/n";

str+="DeviceSoftwareVersion="+tm.getDeviceSoftwareVersion()

+"/n";

str+="Line1Number="+tm.getLine1Number()+"/n";

return str;

}

『肆』 安卓應用軟體啟動時獲取手機的IMEI IMSI 本機號碼有什麼作用

一個是統計你正在使用它們的軟體,統計用戶數量,第二就是有針對性的記錄你的imei號碼平時多瀏覽什麼內容,然後可以針對愛好投放廣告

熱點內容
如何給u盤文件夾加密 發布:2024-11-29 03:48:37 瀏覽:692
傳奇打元寶腳本 發布:2024-11-29 03:39:52 瀏覽:842
如何裝linux系統 發布:2024-11-29 03:38:17 瀏覽:182
咋清理緩存 發布:2024-11-29 03:18:38 瀏覽:12
linux伺服器的配置文件 發布:2024-11-29 03:18:31 瀏覽:615
安卓軟體誤刪軟體如何恢復 發布:2024-11-29 02:55:58 瀏覽:232
我的世界安卓手機如何改成官服 發布:2024-11-29 02:43:11 瀏覽:290
域伺服器如何進行管理 發布:2024-11-29 02:43:08 瀏覽:186
ftp失火 發布:2024-11-29 02:42:27 瀏覽:194
flashas編程 發布:2024-11-29 02:38:49 瀏覽:369