2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > php 获取移动端设备号 getDeviceId()获取设备号IMEI MEID ESN

php 获取移动端设备号 getDeviceId()获取设备号IMEI MEID ESN

时间:2018-07-16 18:20:22

相关推荐

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;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。