php 获取移动端设备号,getDeviceId()获取设备号IMEI、MEID、ESN
网络请求的时候需要根据设备号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相关推荐
- asp.net获取服务端和客户端信息
为什么80%的码农都做不了架构师?>>> asp.net获取服务端和客户端信息 获取服务器名:Page.Server.ManchineName 获取用户信息:Page.User ...
- Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用)
Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用) 备注:测试版本Unity2020,理论上Unity2018以上都可用,未做测试 - 文章初衷 ...
- android 获取设备指纹,Android唯一识别号(设备指纹)的生成
原理: (尽可能实现,同一设备在不刷机不恢复出厂的情况下,每次生成的设备指纹不变:并且尽可能保证两部不同的设备生成的设备指纹不能一样) 1.将imei号+手机硬件信息+androidID拼接成一个字符 ...
- java设备imei号_Android 获取imei号码,获取手机型号和系统版本号
在AndroidManifest.xml文件中要添加 才有权限 TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEP ...
- android 获取设备指纹,Android唯一识别号(设备指纹)的生成及原理
/** * 获取设备指纹的工具类 * *@author BarryHuang *@DATE 2015-8-19 */ public class FingerprintUtil { private st ...
- ua获取手机型号_js获取移动端设备信息(IMEM,IMIS,手机型号,系统版本,浏览器信息等)...
方法一: HTML+ 封装好的方法,额外配置,使用指定方法打包才可用 属性: imei: 设备的国际移动设备身份码 imsi: 设备的国际移动用户识别码 model: 设备的型号 vendor: 设 ...
- 转-ios设备唯一标识获取策略
[http://www.2cto.com/kf/201308/237648.html] 英文原文:In iOS 7 and later, if you ask for the MAC address ...
- iOS设备唯一标识获取策略(不定时更新)
在iOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果IOS设备 ...
- 手机的imei号的获取
手机的设备信息,是我们在做证书验证的时候不可缺少的,这里我会写一些我们常用的手机信息获取办法.TelephonyManager是我们手机管理的一个大的类,继承的Object. 1核心代码和权限 Con ...
最新文章
- python pandas 遍历 DataFrame
- Python学习—pyhton中的进程
- mysql主从复制--转载
- js实现日期转换方法
- Table definition on master and slave does not match
- Linux查询root环境变量,linux环境变量和查看方法
- Socket(套接字)简介
- WORD限制别人只能填写窗体而不能修改文档其他内容?
- 计算机软件基础第四版,《计算机软件技术基础》徐士良(第4版)课后习题答案详解|复习笔记...
- linux学习——文件系统结构
- 前端js实现中文转五笔和拼音首字母
- DreamweaverCS6手把手教你安装并破解
- 一个小巧好用的Url编解码工具
- excel多元线性拟合_急!!!用excel做的多元线性回归分析~|excle做三元回归
- 操作系统页表进程调度Tips
- xpub ypub zpub ---- btc address
- image失败 安装scikit_安装SciKitImage错误127
- 阿克曼转速度指令 cmd_vel
- python中true什么意思_python中的bool是什么意思
- 区块链技术工坊 - 线下区块链技术分享
热门文章
- 联想计算机如何进bois,小编教你联想电脑怎么进入bios
- css左侧盒子固定右边自适应
- 项目实战:借鉴Android API源码(Splitter-split和TextView-setText),不惧NullPointerException(文末彩蛋)
- CRM软件哪个好?该如何选择?
- 除网易、新浪、腾讯、TOM四大企业邮箱外还有哪些?
- 北航王田苗教授:国内外机器人发展热点与趋势(精华版)
- 电脑重装系统后wifi间歇性断网该怎么解决
- Python语言:螺旋式正方形
- 在Windows上安装两个不同版本的数据库
- 基于JAVA老鹳窝旅游网计算机毕业设计源码+数据库+lw文档+系统+部署