导航:首页 > 操作系统 > 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相关的资料

热点内容
贵州java编译器 浏览:644
欧美电影免费看平台 浏览:286
台湾红羊影视作品有哪些 浏览:906
农行app上怎么查询卡号 浏览:891
浩天酒道馆网是什么app 浏览:212
永久不收费的电影网站 浏览:120
儿女传奇全集目录 浏览:522
文学评论pdf 浏览:410
linux源代码导读 浏览:702
百战程序员6000集下载 浏览:146
苹果和安卓手机之间怎么克隆 浏览:465
模糊聚类算法研究 浏览:108
宝德服务器硬盘亮红灯如何解决 浏览:696
androidlibgdx下载 浏览:409
联盟pdf下载 浏览:793
南通住房公积金app支取银行怎么填 浏览:680
韩国剧情电影男主自杀2次是什么电影 浏览:646
李彩谭电影全部 浏览:703
范伟乔杉电影叫什么名字 浏览:467
中国十大免费电影网站 浏览:509