网络请求的时候需要根据设备号id传参,但是服务端后台收到的有时候为空,服务端的存储就为1个0 。而手机设备号获取与手机本身注册的网相关

本人经测试情况魅蓝note5、1:全网通、2张联通卡、获取结果为IMEI1的值。

通过查询API调用getDeviceId()源码可知

通过getDeviceId获取的为IMEI和MEID和ESN

/**

* Returns the unique device ID, for example, the IMEI for GSM and the MEID

* or ESN for CDMA phones. Return null if device ID is not available.

*

* @deprecated Use (@link getImei} which returns IMEI for GSM or (@link getMeid} which returns

* MEID for CDMA.

*/

@Deprecated

@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)

public String getDeviceId() {

try {

ITelephony telephony = getITelephony();

if (telephony == null)

return null;

return telephony.getDeviceId(mContext.getOpPackageName());

} catch (RemoteException ex) {

return null;

} catch (NullPointerException ex) {

return null;

}

}

IMEI(International Mobile Equipment Identity) 是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台移动电话机一一对应,而且该码是全世界唯一的。

MEID 移动设备识别码(Mobile Equipment Identifier)是CDMA手机的身份识别码,也是每台CDMA手机或通讯平板唯一的识别码。

移动:2G使用 GSM, 3G使用 TD-SCDMA 4G使用TD-LTE

联通:2G使用 GSM, 3G使用 WCDMA 4G使用TD-LTE、FDD-LTE

电信:2G使用 CDMA,3G使用 CDMA2000 4G使用TD-LTE、FDD-LTE

所以,IMEI是联通移动手机的标识,MEID是电信手机的标识。(?待考证:因为官方说的只是GSM和CDMA,而2g网络基本上不存在了吧?)

如果注册的是CDMA 返回的是MEID(电信)

如果注册是的GMS网络,返回的是IMIE

如果一直没插卡 没注册phone默认获取IMEI

1.不插卡怎么读 :不插卡的话 会保持上一次插卡是的phone状态

插卡:即上一次插得是CDMA的,获取的是MEID (电信)

插得是GMS的获取的是IMEI

如果之前一直没有插过卡 默认获取IMEI

2.插一个怎么读

插得是CDMA卡获取MEID(电信)

插得是GMS卡获取的是IMEI

不插卡的卡槽同问题1

插两个怎么读 ?哪个,实践出真理。

哪个卡槽插得是CDMA卡获取的是MEID (电信)

哪个卡槽插得是GMS卡获取的是IMEI

插了再拔出来怎么读

插出来后保持上一次的状态 同问题1

移动联通怎么读?

`slotIndex`看源码估计就是?

/**

* Get slotIndex associated with the subscription.

* @return slotIndex as a positive integer or a negative value if an error either

* SIM_NOT_INSERTED or < 0 if an invalid slot index

* @hide

*/

public static int getSlotIndex(int subId) {

if (!isValidSubscriptionId(subId)) {

if (DBG) {

logd("[getSlotIndex]- fail");

}

}

int result = INVALID_SIM_SLOT_INDEX;

try {

ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));

if (iSub != null) {

result = iSub.getSlotIndex(subId);

}

} catch (RemoteException ex) {

// ignore it

}

return result;

}

/**

* Returns the IMEI (International Mobile Equipment Identity). Return null if IMEI is not

* available.

*

* @param slotIndex of which IMEI is returned

*/

@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)

public String getImei(int slotIndex) {

ITelephony telephony = getITelephony();

if (telephony == null) return null;

try {

return telephony.getImeiForSlot(slotIndex, getOpPackageName());

} catch (RemoteException ex) {

return null;

} catch (NullPointerException ex) {

return null;

}

}

建议统一调用getimei(int)这个接口 这个接口不管手机注册的什么网络 均返回IMEI不会根据插的卡而改变返回值。

电信怎么读

/**

* Returns the MEID (Mobile Equipment Identifier). Return null if MEID is not available.

*

* @param slotIndex of which MEID is returned

*/

@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)

public String getMeid(int slotIndex) {

ITelephony telephony = getITelephony();

if (telephony == null) return null;

try {

return telephony.getMeidForSlot(slotIndex, getOpPackageName());

} catch (RemoteException ex) {

return null;

} catch (NullPointerException ex) {

return null;

}

}

php 获取移动端设备号,getDeviceId()获取设备号IMEI、MEID、ESN相关推荐

  1. asp.net获取服务端和客户端信息

    为什么80%的码农都做不了架构师?>>>    asp.net获取服务端和客户端信息 获取服务器名:Page.Server.ManchineName 获取用户信息:Page.User ...

  2. Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用)

    Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用) 备注:测试版本Unity2020,理论上Unity2018以上都可用,未做测试 - 文章初衷 ...

  3. android 获取设备指纹,Android唯一识别号(设备指纹)的生成

    原理: (尽可能实现,同一设备在不刷机不恢复出厂的情况下,每次生成的设备指纹不变:并且尽可能保证两部不同的设备生成的设备指纹不能一样) 1.将imei号+手机硬件信息+androidID拼接成一个字符 ...

  4. java设备imei号_Android 获取imei号码,获取手机型号和系统版本号

    在AndroidManifest.xml文件中要添加 才有权限 TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEP ...

  5. android 获取设备指纹,Android唯一识别号(设备指纹)的生成及原理

    /** * 获取设备指纹的工具类 * *@author BarryHuang *@DATE 2015-8-19 */ public class FingerprintUtil { private st ...

  6. ua获取手机型号_js获取移动端设备信息(IMEM,IMIS,手机型号,系统版本,浏览器信息等)...

    方法一: HTML+  封装好的方法,额外配置,使用指定方法打包才可用 属性: imei: 设备的国际移动设备身份码 imsi: 设备的国际移动用户识别码 model: 设备的型号 vendor: 设 ...

  7. 转-ios设备唯一标识获取策略

    [http://www.2cto.com/kf/201308/237648.html] 英文原文:In iOS 7 and later, if you ask for the MAC address ...

  8. iOS设备唯一标识获取策略(不定时更新)

    在iOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果IOS设备 ...

  9. 手机的imei号的获取

    手机的设备信息,是我们在做证书验证的时候不可缺少的,这里我会写一些我们常用的手机信息获取办法.TelephonyManager是我们手机管理的一个大的类,继承的Object. 1核心代码和权限 Con ...

最新文章

  1. python pandas 遍历 DataFrame
  2. Python学习—pyhton中的进程
  3. mysql主从复制--转载
  4. js实现日期转换方法
  5. Table definition on master and slave does not match
  6. Linux查询root环境变量,linux环境变量和查看方法
  7. Socket(套接字)简介
  8. WORD限制别人只能填写窗体而不能修改文档其他内容?
  9. 计算机软件基础第四版,《计算机软件技术基础》徐士良(第4版)课后习题答案详解|复习笔记...
  10. linux学习——文件系统结构
  11. 前端js实现中文转五笔和拼音首字母
  12. DreamweaverCS6手把手教你安装并破解
  13. 一个小巧好用的Url编解码工具
  14. excel多元线性拟合_急!!!用excel做的多元线性回归分析~|excle做三元回归
  15. 操作系统页表进程调度Tips
  16. xpub ypub zpub ---- btc address
  17. image失败 安装scikit_安装SciKitImage错误127
  18. 阿克曼转速度指令 cmd_vel
  19. python中true什么意思_python中的bool是什么意思
  20. 区块链技术工坊 - 线下区块链技术分享

热门文章

  1. 联想计算机如何进bois,小编教你联想电脑怎么进入bios
  2. css左侧盒子固定右边自适应
  3. 项目实战:借鉴Android API源码(Splitter-split和TextView-setText),不惧NullPointerException(文末彩蛋)
  4. CRM软件哪个好?该如何选择?
  5. 除网易、新浪、腾讯、TOM四大企业邮箱外还有哪些?
  6. 北航王田苗教授:国内外机器人发展热点与趋势(精华版)
  7. 电脑重装系统后wifi间歇性断网该怎么解决
  8. Python语言:螺旋式正方形
  9. 在Windows上安装两个不同版本的数据库
  10. 基于JAVA老鹳窝旅游网计算机毕业设计源码+数据库+lw文档+系统+部署