首先刚看见这个需求,觉得有病吧。没办法也得解决。以下方法亲测有效,希望能帮助到大家。

首先我们应该注意的是需要一个权限,要不怎么都不会成功的

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

接着就是代码部分了,在网上找了好多资料都没有生效 亲测下面代码有效

//whximport com.android.internal.telephony.PhoneConstants;import android.telephony.TelephonyManager;
 TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(context.TELEPHONY_SERVICE);String imei = telephonyManager.getDeviceId();

这样我们就获取到了单卡的IMEI号码了。

如果想要获取到双卡的:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {String imei = telephonyManager.getDeviceId(slot);
}

以上方法就可以让我们获取到IMEI号码了。有木有觉得很棒!

我们在放出来资料,希望能帮助到大家

IMEI号是GSM的概念,CDMA对应的是MEID号。

IMEI(International Mobile Equipment Identity)是国际移动设备身份码,目前GSM/WCDMA/LTE手机终端需要使用IMEI号码。在单卡工程中一个手机对应一个IMEI号;双卡工程中一张卡对应一个IMEI号,双卡共有两个IMEI号。

MEID (Mobile Equipment Identifier) 移动设备识别码,是CDMA手机的唯一身份识别码。

通过GSMPhone对象来调用getDeviceId()函数,获取到的就是IMEI号。

通过CDMAPhone对象来调用getDeviceId()函数,获取到的就是MEID号。

一、如何获取IMEI号

L版本非C2K项目上:

GSMPhone.java中的getDeviceId()

L上面已经没有GeminiPhone;

使用方法如下:

Phone mPhone1=PhoneFactory.getPhone(PhoneConstants.SIM_ID_1);

Phone mPhone2=PhoneFactory.getPhone(PhoneConstants.SIM_ID_2);

if (mPhone1 != null) {

String imei_sim1 =  mPhone1.getDeviceId();

}

if (mPhone2 != null) {

String imei_sim2 =  mPhone2.getDeviceId();

}

M0.mp1版本C2K项目、

L版本C2K项目上:

L版本C2K项目上,一张卡同时对应一个CDMAPhone和一个GSMPhone,要获取对应卡的IMEI号,需要先获取到对应的GSMPhone对象,具体可以通过下面的方法来获取:

SIM1-> CDMAPhone = PhoneFactory.getPhone(0).getNLtePhone()

SIM1-> GSMPhone = PhoneFactory.getPhone(0).getLtePhone()

SIM2->  CDMAPhone = PhoneFactory.getPhone(1).getNLtePhone()

SIM2->  GSMPhone = PhoneFactory.getPhone(1).getLtePhone()

 

获取到GSMPhone对象后,通过该对象来调用getDeviceId()函数。

KK版本上:

GSMPhone.java    中getDeviceId()

GeminiPhone.java 其中getDeviceIdGemini()已经没有了,而getDeviceId()获取的是default phone的IMEI;

所以直接使用GSMPhone.java中getDeviceId()方法;

Demo code:

GeminiPhone mGeminiPhone;

String imei_sim1=mGeminiPhone.getPhonebyId(PhoneConstants.GEMINI_SIM_1).getDeviceId();

String imei_sim2=mGeminiPhone.getPhonebyId(PhoneConstants.GEMINI_SIM_2).getDeviceId();

 

KK之前的版本:

下面是获得IMEI号的接口和demo code

API:

GSMPhone.java     中getDeviceId()

GeminiPhone.java  中getDeviceId() 和 getDeviceIdGemini()

Demo code:

import com.android.internal.telephony.Phone;

import com.android.internal.telephony.gemini.GeminiPhone;

import com.android.internal.telephony.PhoneFactory;

Phone phone;

phone = PhoneFactory.getDefaultPhone();

String  imei=(GeminiPhone)phone.getDeviceId();

GeminiPhone mGeminiPhone;

String imei_sim1 = mGeminiPhone.getDeviceIdGemini(PhoneConstants.GEMINI_SIM_1);

String imei_sim2 = mGeminiPhone.getDeviceIdGemini(PhoneConstants.GEMINI_SIM_2);

Android中如何获取IMEI号码相关推荐

  1. 如何查看手机的android版本号,android系统如何获取imei号码,获取手机型号和系统版本号...

    核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)) .getDeviceId(); 1.加入权限 在manife ...

  2. android系统如何获取imei号码,获取手机型号和系统版本号

    2.tm.CALL_STATE_RINGING=1 响铃 3.tm.CALL_STATE_OFFHOOK=2 摘机 */ tm.getCallState();//int /* 电话方位: */ tm. ...

  3. android获取imei兼容_Android获取IMEI号码

    1 android 获取 imei号码2 3 核心代码:4 5 Imei =((TelephonyManager) getSystemService(TELEPHONY_SERVICE))6 .get ...

  4. android 获取 imei号码

    转自:http://blog.csdn.net/gumanren/archive/2011/02/26/6209237.aspx android 获取 imei号码 核心代码: Imei = ((Te ...

  5. android 弹出fragment,Android中ViewPager获取当前显示的Fragment

    前言 在项目中,有时会用到在ViewPager中显示同样类型的Fragment,同时这样的Fragment的个数是动态的,但是PagerAdapter没有给我们提供getCurrentFragment ...

  6. 在Android中快速获取手机的高级权限

    在Android中快速获取手机的高级权限 想要快速获取Android手机的ROOT权限吗?也许因为ROOT教程太复杂,也许因为不会进工程模式,让我们在使用Android手机时感觉像是开别人的车一样,总 ...

  7. Android 各个版本获取IMEI、MEID

    MEID/IMEI1/IMEI2 (可通过在手机拨号键盘中输入 *#06# 即可查询) IMEI:(International Mobile Equipment Identity)国际移动设备身份码的 ...

  8. android 获取 meid 代码,Android 各个版本获取IMEI、MEID

    public class IMEIUtil { /** * 获取默认的imei 一般都是IMEI 1 * * @param context * @return */ public static Str ...

  9. imei ios android,ios设备获取IMEI

    ios设备获取IMEI [2021-01-28 02:25:52]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\ ...

最新文章

  1. 如何正确关闭游戏服务器
  2. 3.1.11 OS之段页式存储管理(段表、页表、地址转换、)
  3. mac 无法ssh localhost,错误提示:bash: /usr/local/bin/ssh_session: Permission denied
  4. 《环形女人》:“穿透”与“征兆”(全文)
  5. 使用Selenium或WebDriver测试GWT应用
  6. python中range函数是什么意思_python里range是什么
  7. java并发编程代码示例_java并发编程之同步器代码示例
  8. Mac双系统中删除Windows系统教程
  9. 【Java】用键盘输入若干数字,以非数字字符结束,计算这些数的和和平均值
  10. jlpt报名系统显示网络错误和服务器忙,批改网作文提交不了一直显示服务器或网络错误...
  11. jfinal解决跨域(eova和jfinal)
  12. JPA mappedBy、JoinColumn、FetchType.LAZY和FetchType.EAGER介绍
  13. 【LeetCode】592. 分数加减运算
  14. 星起航跨境:美国市场8月份在线价格同比上涨0.4%
  15. IT行业发展趋势及就业前景?
  16. 王二 设计模式读书笔记
  17. btrfs 入门使用
  18. 今日学习在线编程题:小码哥的手下
  19. KeyError: [] not found in axis_最IN拉花潮改“出圈”,欧拉白猫拓创无限可能_搜狐汽车...
  20. 【Webpack5笔记】Webpack高级配置---提升开发体验

热门文章

  1. Java进阶必读书籍推荐
  2. 使用python画3D立体爱心
  3. java-php-python-springboot小区停车场管理系统计算机毕业设计
  4. 网狐棋牌客户端连接服务器修改方法
  5. 微信公众号网面开发中的制授权问题
  6. 多元函数的微分中值定理的推广 (原创)
  7. Excel选中区域全都除以某一个数
  8. PMBOK(第六版) PMP笔记——《四》第四章(项目整合管理)
  9. 数据挖掘信用卡盗刷分类问题
  10. 关于duilib CComboUI控件下拉框 字体显示 与xml 设置不相符的问题