導航:首頁 > 操作系統 > android取不到imei

android取不到imei

發布時間:2022-11-26 07:33:11

android怎麼獲取手機imei號

您可以通過手機設置的關於本機選項下查看手機IMEI碼。
也可以通過撥號鍵盤輸入*#06#獲得。

② 如何獲取android設備的imei號

一般的智能手機,在手機撥號鍵盤上輸入*#06#就會顯示出本機的IMEI號碼。
可以取出電池的手機,把後蓋打開,取出電池,手機電池槽上就貼有IMEI號碼的標簽。
不可取下後蓋的手機,一般IMEI號碼的標簽就貼在手機後蓋上。
IMEI(International Mobile Equipment Identity,移動設備國際識別碼,又稱為國際移動設備標識)是手機的唯一識別號碼。

③ Android如何獲取手機IMEI

/**

* 獲取手機IMEI

*/

private static StringgetIMEI(Context context) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {

return null;

    }

try {

TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);

        if (telephonyManager ==null) {

return null;

        }

@SuppressLint({"MissingPermission", "HardwareIds"}) String imei = telephonyManager.getDeviceId();

        return imei;

    }catch (Exception e) {

return null;

    }

}

④ 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;

}

⑤ 如何獲取android設備的imei號

獲取android設備的imei號可以打開撥號盤,輸入*#06#即可查看IMEI號。
國際移動設備識別碼(IMEI:International Mobile Equipment Identification Number)是區別移動設備的標志,儲存在移動設備中,可用於監控被竊或無效的移動設備。IMEI可用移動終端設備通過鍵入"*#06#"查得(不同廠商的手機所需輸入的內容不同,同一廠商不同手機所需輸入的內容也可能不同)。其總長為15位,每位數字僅使用0~9的數字(含義見下文)。
IMEI俗稱"串號",存儲在手機的EEPROM(俗稱"碼片")里,熟悉並了解這個號碼對我們今後識別手機會起到非常大的作用。

⑥ android手機導致獲取不到mac地址,imei,imsi的因素有哪些

UICC初始化失敗。是其中之一。第二許可權問題。UICC初始化屬於底層的一些東西,一本書不一定說的明白,大致就是這樣一個過程,你調用一些封裝好的API調用通信框架的函數,調用RIL操作數據機。如果這中間任何一個環節不通暢,都會導致獲取不到結果。一個手機開機,都必須初始化數據機和UICC。所以我說初始化失敗也是原因之一。

⑦ 華為手機安裝軟體出現無法獲取imei許可權是什麼情況

這個大多數是安裝了非華為認可的應用導致的。去設置裡面找到安全,找到安裝未知應用,打開那個即可安裝各種應用了。

⑧ 軟體說找不到手機的IMEI 啥意思

就是讀取不到手機的imei碼,你可以到手機的應用許可權設置裡面看看是不是禁用了這款軟體讀取IMEI碼的功能。

⑨ android imei獲取

隨著android系統不斷升級,android設備的imei號已經越來越難獲取了。網上一些推薦會用meid、androidid來代替imei號。但是因為項目推廣需要比對渠道那邊回傳imei號來確認新增。
發現部分機型渠道(eg:快手)可以獲取到而我們獲取不到,導致無法確認新增。最終在TelephonyManager中找到getDeviceSoftwareVersion()方法。可以變相實現獲取imei號(但也會有getDeviceSoftwareVersion獲取不到的機型,不過驗證渠道那邊也獲取不到了)。

public static String getIMEI() {
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);
String imei = null;
if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
imei = telephonyManager.getImei();
if (!TextUtils.isEmpty(imei)) {
return imei;
} else {
String softwareVersion = getDeviceSoftwareVersion();
if (!TextUtils.isEmpty(softwareVersion) && softwareVersion.length() > 14) {
String imeiHead = softwareVersion.substring(0, 14);
imei = imeiHead + luhn(imeiHead);
return imei;
} else {
return null;
}
}
} else {
return telephonyManager.getDeviceId();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return imei;
}

/**
* Luhn演算法
* 根據號碼獲取校驗位
*
* @param cardNumber
* @return
*/
public static int luhn(String cardNumber) {
int totalNumber = 0;
for (int i = cardNumber.length() - 1; i >= 0; i -= 2) {
int tmpNumber = calculate(Integer.parseInt(String.valueOf(cardNumber.charAt(i))) * 2);
if (i == 0) {
totalNumber += tmpNumber;
} else {
totalNumber += tmpNumber + Integer.parseInt(String.valueOf(cardNumber.charAt(i - 1)));
}

其實是因為getDeviceSoftwareVersion和getImei()拼接規則只有末位兩個數不相同,而imei的末位數可以通過luhn演算法獲取,從而拼接成imei值(自測有效)。

但是畢竟還是有部分機型獲取不到imei,可以使用oaid來補充說明。

如果是自己app內部做唯一標識的話可以用meid、androidid或deviceid來代替imei
public static String getUniqueId() {
TelephonyManager telephonyManager = (TelephonyManager) BaseApplication.getAppContext().getSystemService(Context.TELEPHONY_SERVICE);
if (AndPermission.hasPermissions(BaseApplication.getAppContext(), Manifest.permission.READ_PHONE_STATE)) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {

⑩ 為什麼在Android2.3.4下獲取不到IMEI

獲取不到是因為許可權沒有開放,要做一下配置:

  1. 加入許可權

    在manifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE" />

  2. 實現方法參考代碼



  3. package net.sunniwell.app;

  4. import android.app.Activity;

  5. import android.os.Bundle;

  6. import android.telephony.CellLocation;

  7. import android.telephony.PhoneStateListener;

  8. import android.telephony.TelephonyManager;

  9. public class TelManager extends Activity {


  10. @Override

  11. protected void onCreate(Bundle savedInstanceState) {

  12. super.onCreate(savedInstanceState);

  13. TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);


  14. /*

  15. * 電話狀態:

  16. * 1.tm.CALL_STATE_IDLE=0 無活動

  17. * 2.tm.CALL_STATE_RINGING=1 響鈴

  18. * 3.tm.CALL_STATE_OFFHOOK=2 摘機

  19. */

  20. tm.getCallState();//int


  21. /*

  22. * 電話方位:

  23. *

  24. */

  25. tm.getCellLocation();//CellLocation


  26. /*

  27. * 唯一的設備ID:

  28. * GSM手機的 IMEI 和 CDMA手機的 MEID.

  29. * Return null if device ID is not available.

  30. */

  31. tm.getDeviceId();//String


  32. /*

  33. * 設備的軟體版本號:

  34. * 例如:the IMEI/SV(software version) for GSM phones.

  35. * Return null if the software version is not available.

  36. */

  37. tm.getDeviceSoftwareVersion();//String


  38. /*

  39. * 手機號:

  40. * GSM手機的 MSISDN.

  41. * Return null if it is unavailable.

  42. */

  43. tm.getLine1Number();//String


  44. /*

  45. * 附近的電話的信息:

  46. * 類型:List<NeighboringCellInfo>

  47. * 需要許可權:android.Manifest.permission#ACCESS_COARSE_UPDATES

  48. */

  49. tm.getNeighboringCellInfo();//List<NeighboringCellInfo>


  50. /*

  51. * 獲取ISO標準的國家碼,即國際長途區號。

  52. * 注意:僅當用戶已在網路注冊後有效。

  53. * 在CDMA網路中結果也許不可靠。

  54. */

  55. tm.getNetworkCountryIso();//String


  56. /*

  57. * MCC+MNC(mobile country code + mobile network code)

  58. * 注意:僅當用戶已在網路注冊時有效。

  59. * 在CDMA網路中結果也許不可靠。

  60. */

  61. tm.getNetworkOperator();//String


  62. /*

  63. * 按照字母次序的current registered operator(當前已注冊的用戶)的名字

  64. * 注意:僅當用戶已在網路注冊時有效。

  65. * 在CDMA網路中結果也許不可靠。

  66. */

  67. tm.getNetworkOperatorName();//String


  68. /*

  69. * 當前使用的網路類型:

  70. * 例如: NETWORK_TYPE_UNKNOWN 網路類型未知 0

  71. NETWORK_TYPE_GPRS GPRS網路 1

  72. NETWORK_TYPE_EDGE EDGE網路 2

  73. NETWORK_TYPE_UMTS UMTS網路 3

  74. NETWORK_TYPE_HSDPA HSDPA網路 8

  75. NETWORK_TYPE_HSUPA HSUPA網路 9

  76. NETWORK_TYPE_HSPA HSPA網路 10

  77. NETWORK_TYPE_CDMA CDMA網路,IS95A 或 IS95B. 4

  78. NETWORK_TYPE_EVDO_0 EVDO網路, revision 0. 5

  79. NETWORK_TYPE_EVDO_A EVDO網路, revision A. 6

  80. NETWORK_TYPE_1xRTT 1xRTT網路 7

  81. */

  82. tm.getNetworkType();//int


  83. /*

  84. * 手機類型:

  85. * 例如: PHONE_TYPE_NONE 無信號

  86. PHONE_TYPE_GSM GSM信號

  87. PHONE_TYPE_CDMA CDMA信號

  88. */

  89. tm.getPhoneType();//int


  90. /*

  91. * Returns the ISO country code equivalent for the SIM provider's country code.

  92. * 獲取ISO國家碼,相當於提供SIM卡的國家碼。

  93. *

  94. */

  95. tm.getSimCountryIso();//String


  96. /*

  97. * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.

  98. * 獲取SIM卡提供的移動國家碼和移動網路碼.5或6位的十進制數字.

  99. * SIM卡的狀態必須是 SIM_STATE_READY(使用getSimState()判斷).

  100. */

  101. tm.getSimOperator();//String


  102. /*

  103. * 服務商名稱:

  104. * 例如:中國移動、聯通

  105. * SIM卡的狀態必須是 SIM_STATE_READY(使用getSimState()判斷).

  106. */

  107. tm.getSimOperatorName();//String


  108. /*

  109. * SIM卡的序列號:

  110. * 需要許可權:READ_PHONE_STATE

  111. */

  112. tm.getSimSerialNumber();//String


  113. /*

  114. * SIM的狀態信息:

  115. * SIM_STATE_UNKNOWN 未知狀態 0

  116. SIM_STATE_ABSENT 沒插卡 1

  117. SIM_STATE_PIN_REQUIRED 鎖定狀態,需要用戶的PIN碼解鎖 2

  118. SIM_STATE_PUK_REQUIRED 鎖定狀態,需要用戶的PUK碼解鎖 3

  119. SIM_STATE_NETWORK_LOCKED 鎖定狀態,需要網路的PIN碼解鎖 4

  120. SIM_STATE_READY 就緒狀態 5

  121. */

  122. tm.getSimState();//int


  123. /*

  124. * 唯一的用戶ID:

  125. * 例如:IMSI(國際移動用戶識別碼) for a GSM phone.

  126. * 需要許可權:READ_PHONE_STATE

  127. */

  128. tm.getSubscriberId();//String


  129. /*

  130. * 取得和語音郵件相關的標簽,即為識別符

  131. * 需要許可權:READ_PHONE_STATE

  132. */

  133. tm.getVoiceMailAlphaTag();//String


  134. /*

  135. * 獲取語音郵件號碼:

  136. * 需要許可權:READ_PHONE_STATE

  137. */

  138. tm.getVoiceMailNumber();//String


  139. /*

  140. * ICC卡是否存在

  141. */

  142. tm.hasIccCard();//boolean


  143. /*

  144. * 是否漫遊:

  145. * (在GSM用途下)

  146. */

  147. tm.isNetworkRoaming();//



  148. }


  149. }

閱讀全文

與android取不到imei相關的資料

熱點內容
智能租房系統源碼 瀏覽:345
c編程軟體哪個好 瀏覽:673
程序員寫什麼代碼最好 瀏覽:979
大尺度電影名字 瀏覽:897
重生民國收母 瀏覽:723
男主當鴨子的韓劇電影 瀏覽:488
人乳奶水電影 瀏覽:211
台灣鏡花風月系列 瀏覽:551
主角叫江辰的重生小說 瀏覽:608
李采潭演的都是真的嗎 瀏覽:512
日本女人切腹大尺度電影 瀏覽:637
vr電影在哪看 瀏覽:86
法國四級電影有哪些 瀏覽:558
男主角叫林楓得到系統的小說 瀏覽:820
pdf列印白邊 瀏覽:612
重生異界收母收姨 瀏覽:801
韓國女同性戀影片 瀏覽:192
信念科幻電影 瀏覽:791
javaiocp 瀏覽:702
看免費大片網站 瀏覽:849