变机精灵功能:  手机参数修改,手机代理ip,手机改ip,手机换ip,修改改手机信息,手机APP数据备份,数据,卸载等
您的位置: 首页 > 新闻资讯 > 正文

Android获取IMEI和MEID

发布时间:2019-04-11 17:31:23 来源:互联网

Android获取IMEI和MEID! IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,由15位数字组成的电子串号与每台手机一一对应,且该码全世界唯一。


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


在破解微信数据库时,需要获取手机的DeviceId,但是有时会出现打不开的情况,报出file is not a database: , while compiling: select count(*) from sqlite_master的异常,这时发现我的数据库密码和之前的不一致,对比一下发现获取的deviceId不一致导致的,难道手机的deviceId也会变来变去吗?



搜了一下资料,发现获取手机的deviceId还真没想的那么容易。一般情况我们获取手机的DeviceId也就是手机的IMEI码,一般通过如下代码。此外还需要获取READ_PHONE_STATE权限。


private String getPhoneIMEI() {

    TelephonyManager tm = (TelephonyManager) getContext().getSystemService(Service.TELEPHONY_SERVICE);

    return tm.getDeviceId();

}


一个双卡手机不止一个IMEI值,全网通双卡手机有两个IMEI和一个MEID,Android6.0的API中提供了这样的方法getDeviceId(int slotIndex)

Android获取IMEI和MEID

private String getPhoneIMEI(int slotIndex) {

    TelephonyManager tm = (TelephonyManager) getContext().getSystemService(Service.TELEPHONY_SERVICE);

    return tm.getIMEI(slotIndex);

}


private String getPhoneMEID(int slotIndex) {

    TelephonyManager tm = (TelephonyManager) getContext().getSystemService(Service.TELEPHONY_SERVICE);

    return tm.getMEID(slotIndex);

}


在Android5.0系统中,可以通过反射获取IMEI和MEID的值。


private String getIMEI(int slotId){

        try {

            Class clazz = Class.forName("android.os.SystemProperties");

            Method method = clazz.getMethod("get", String.class, String.class);

            String imei = (String) method.invoke(null, "ril.gsm.imei", "");

            if(!TextUtils.isEmpty(imei)){

                String[] split = imei.split(",");

                if(split.length > slotId){

                    imei = split[slotId];

                }

                Log.d(TAG,"getIMEI imei: "+ imei);

                return imei;

            }

        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | ClassNotFoundException e) {

            e.printStackTrace();

            Log.w(TAG,"getIMEI error : "+ e.getMessage());

        }

        return "";

    }


private String getMEID(){

        try {

            Class clazz = Class.forName("android.os.SystemProperties");

            Method method = clazz.getMethod("get", String.class, String.class);


            String meid = (String) method.invoke(null, "ril.cdma.meid", "");

            if(!TextUtils.isEmpty(meid)){

                Log.d(TAG,"getMEID meid: "+ meid);

                return meid;


               }

        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | ClassNotFoundException e) {

            e.printStackTrace();

            Log.w(TAG,"getMEID error : "+ e.getMessage());

       }

        return "";

    }


至于上面提到的手机deviceId改变因为之前调用tm.getDeviceId()返回的imei值,后来返回meid值导致的,什么原因导致的还没发现。


相关资讯

Android获取IMEI和MEID

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

来源:互联网

封号用变机精灵修改手机参数和IP地址

封号用变机精灵修改手机参数和IP地址,预防账号被封,效果不错。被封号,这对于很多游戏玩家来讲,这是很正常的事情了。就是为代理IP也用着,IP地址也换了,为什么还被封了?

来源:互联网

适用于Android智能手机的6大数据保护应用

如今,每个人都拥有智能手机,几乎所有设备都受到各种威胁,如病毒,广告甚至身份盗用。下面列出了智能手机的数据保护应用程序。

来源:互联网

小米2s修改imei的方法

电脑端:windwos xp (win8.1上Qpst运行不正常)

来源:

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
变机精灵动态换IP
客服电话
400-998-9776转2