安卓系统4.0/5.0/6.0获取单卡,双卡手机的imei1,imei2,meid

告别手动点点点:用Selenium IDE命令行运行器实现自动化测试的CI/CD集成(保姆级教程) 本文详细介绍了如何利用Selenium IDE命令行运行器实现自动化测试的CI/CD集成,提供从环境配置、多环境测试策略到CI/CD流水线集成的保姆级教程。通过工程化实践和高级技巧,帮助团队提升测试效率,实现持续交付。 阅读详情

最近这3天,一直在做获取手机的,imei1,imei2,meid,sn等手机系统信息的小app,在做的过程中,遇到了很多问题,发现网络上对这块的技术帖子,并不多,关键是还不详细,有的帖子三言两语,几句话,其实说的还是4.0版本的获取,获取了imei 获取不到meid,有的帖子贴了一堆代码,其实也并没有什么卵用,有的帖子一长串反射代码,也是无关痛痒, 所以今天我想把我这3天的心得,分享出来,也想让广大开发者,提供点个人的帮助!开始之前,这是方法getDeviceId()的源码,这串英文 我就不翻译了,自己看,网上大部分帖子都是说用这个,其实这个只是4.0的时候拿的。但是4.0的手机也有双卡手机,所以这就有坑了市面上的安卓手机,有很多种,系统也有各种各样,有的4.0左右系统,有的5.0左右系统,有的6.0左右系统,有单卡槽的,有双卡槽的,有全网通的,有卡槽一个是uim一个是 Sim的,有双SIM的现在我讲图文并茂展示下,我手上测试机,测试后的情况

1.魅族PRO 6手机 双卡双待 ,卡1卡2均为SIM卡,系统是基于安卓5.0的 有自己的SIM下面的图,是我自己写的安卓代码得到的下面图。是关于设置里面查找的这是运行的GIF动态图

2.手机是魅族 pro6 plus双卡手机,它是没有MEID 的,手机系统是5.0+

3.手机是最老的 魅族not 系统是4.0+,双卡手机 卡1是UIM 卡2是SIM

总结以上:基于安卓系统。4.0 5.0 6.0的系统4.0的系统如果想获取MEID/IMEI1/IMEI2 ----其实是很难做到的。 因为你只能只用getDeviceId() 这个方法5.0的系统如果想获取MEID/IMEI1/IMEI2 ----framework层提供了两个属性值“ril.cdma.meid"和“ril.gsm.imei"获取meid、imei1、imei2(5.0的时候如果想要获取,必须使用反射方法,去拿,下面慢慢看。我会把代码贴出来)6.0的系统如果想获取MEID/IMEI1/IMEI2 ---- 直接获取系统api getDeviceId(int slotId) //指定slotId的deviceId getDeviceId(0) getDeviceId(1) 但是全网通手机Phone在初始化时只创建了GSMPhone,并没有创建CDMAPhone,此时是无法获取到meid。只有插入CDMA卡才会通过PhoneProxy的deleteAndCreatePhone方法,将其中一个phone删除,重新创建CDMALTEPhone。但是,由于支持盲插功能,我们并不知道用户会将cdma卡插入哪个卡槽,CDMALTEPhone有可能是卡1,也有可能是卡2。因此使用google原生接口获取deviceId会出现如下三种情况:
1、不插卡(或两张卡都是GSM卡) getDeviceId() 返回 imei1 getDeviceId(0) 返回 imei1 getDeviceId(1) 返回 imei2

2、卡1插CDMA卡,卡2不插卡(或卡2插GSM卡) getDeviceId() 返回 meid getDeviceId(0) 返回 meid getDeviceId(1) 返回 imei2

3、卡2插CDMA卡,卡1不插卡(或卡1插GSM卡) getDeviceId() 返回 imei1 getDeviceId(0) 返回 imei1 getDeviceId(1) 返回 meid好吧,上面罗里吧嗦的说了一堆, 我就直接上代码了

 if (Build.VERSION.SDK_INT < 21) {
            //如果获取系统的IMEI/MEID,14位代表meid 15位是imei
            if (GetSystemInfoUtil.getNumber(getActivity()) == 14) {
                mTvPhoneMeid.setText(GetSystemInfoUtil.getImeiOrMeid(getActivity()));//meid
            } else if (GetSystemInfoUtil.getNumber(getActivity()) == 15) {
                mTvPhoneImei.setText(GetSystemInfoUtil.getImeiOrMeid(getActivity()));//imei1
            }
 
            // 21版本是5.0,判断是否是5.0以上的系统  5.0系统直接获取IMEI1,IMEI2,MEID
        } else if (Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT<23) {
 
            mTvPhoneImei.setText(GetSystemInfoUtil.getImei1());//imei1
            mTvPhoneOtherImei.setText(GetSystemInfoUtil.getImei2());//imei2
            mTvPhoneMeid.setText(GetSystemInfoUtil.getMeid());//meid
        }
        else  if(Build.VERSION.SDK_INT>=23){
 
            final TelephonyManager tm = (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
            String imei1 = tm.getDeviceId(0);
            String imei2 = tm.getDeviceId(1);
            mTvPhoneImei.setText(imei1);//imei1
            mTvPhoneOtherImei.setText(imei2);//imei2
            mTvPhoneMeid.setText(GetSystemInfoUtil.getMeid());//meid
 
        }

 
/**
     * 获取SN
     *
     * @return
     */
    public static String getSn(Context ctx) {
//         if (android.os.Build.SERIAL.equals("unknown")) {
            //MX3手机会出现这个
            String serial = null;
            try {
                Class<?> c = Class.forName("android.os.SystemProperties");
                Method get = c.getMethod("get", String.class);
                serial = (String) get.invoke(c, "ro.serialno");
 
            } catch (Exception ignored) {
 
            }
 
            return serial;
//        } else {
//            return android.os.Build.SERIAL;
//        }
    }
 /**
     * 系统4.0的时候
     * 获取手机IMEI 或者Meid
     *
     * @return 手机IMEI
     */
    public static String getImeiOrMeid(Context ctx) {
        TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
        if (tm != null) {
            return tm.getDeviceId();
        }
 
 
        return null;
    }
/**
     * 获取IMEI IMEI2 MEID
     * @param ctx
     * @return
     */
    @RequiresApi(api = Build.VERSION_CODES.M)
    public static Map getImeiAndMeid(Context ctx) {
        Map<String, String> map = new HashMap<String, String>();
        TelephonyManager mTelephonyManager = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
        Class<?> clazz = null;
        Method method = null;//(int slotId)
 
        try {
            clazz = Class.forName("android.os.SystemProperties");
            method = clazz.getMethod("get", String.class, String.class);
            String gsm = (String) method.invoke(null, "ril.gsm.imei", "");
 
 
            String meid = (String) method.invoke(null, "ril.cdma.meid", "");
            map.put("meid", meid);
            if (!TextUtils.isEmpty(gsm)) {
                //the value of gsm like:xxxxxx,xxxxxx
                String imeiArray[] = gsm.split(",");
                if (imeiArray != null && imeiArray.length > 0) {
                    map.put("imei1", imeiArray[0]);
 
                    if (imeiArray.length > 1) {
                        map.put("imei2", imeiArray[1]);
                    } else {
                        map.put("imei2", mTelephonyManager.getDeviceId(1));
                    }
                } else {
                    map.put("imei1", mTelephonyManager.getDeviceId(0));
                    map.put("imei2", mTelephonyManager.getDeviceId(1));
                }
            } else {
                map.put("imei1", mTelephonyManager.getDeviceId(0));
                map.put("imei2", mTelephonyManager.getDeviceId(1));
 
            }
 
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        return map;
    }

/**
 * 获取手机系统内部信息工具类
 * Created by yangbin on 3/2/2017.
 */
 
public class GetSystemInfoUtil {
 
 
    /**
     * 获取当前手机系统版本号
     *
     * @return 系统版本号
     */
    public static String getSystemVersion() {
        return Build.DISPLAY;
        //return android.os.Build.VERSION.RELEASE;
 
    }
 
 
    /**
     * 获取手机型号
     *
     * @return 手机型号
     */
    public static String getSystemModel() {
        return Build.MODEL;
    }
 
    /**
     * 获取手机厂商
     *
     * @return 手机厂商
     */
    public static String getDeviceBrand() {
        return Build.BRAND;
    }
 
 
    /**
     * 获取SN
     *
     * @return
     */
    public static String getSn(Context ctx) {
            String serial = null;
            try {
                Class<?> c = Class.forName("android.os.SystemProperties");
                Method get = c.getMethod("get", String.class);
                serial = (String) get.invoke(c, "ro.serialno");
 
            } catch (Exception ignored) {
 
            }
 
            return serial;
    }
 
    /**
     * 系统4.0的时候
     * 获取手机IMEI 或者Meid
     *
     * @return 手机IMEI
     */
    public static String getImeiOrMeid(Context ctx) {
        TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
        if (tm != null) {
            return tm.getDeviceId();
        }
 
 
        return null;
    }
 
    /**
     * 拿到imei或者meid后判断是有多少位数
     *
     * @param ctx
     * @return
     */
    public static int getNumber(Context ctx) {
        int count = 0;
        long number = Long.parseLong(getImeiOrMeid(ctx).trim());
 
        while (number > 0) {
            number = number / 10;
            count++;
        }
        return count;
    }
 
 
    /**
     * Flyme 说 5.0 6.0统一使用这个获取IMEI IMEI2 MEID
     * @param ctx
     * @return
     */
    @RequiresApi(api = Build.VERSION_CODES.M)
    public static Map getImeiAndMeid(Context ctx) {
        Map<String, String> map = new HashMap<String, String>();
        TelephonyManager mTelephonyManager = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
        Class<?> clazz = null;
        Method method = null;//(int slotId)
 
        try {
            clazz = Class.forName("android.os.SystemProperties");
            method = clazz.getMethod("get", String.class, String.class);
            String gsm = (String) method.invoke(null, "ril.gsm.imei", "");
 
 
            String meid = (String) method.invoke(null, "ril.cdma.meid", "");
            map.put("meid", meid);
            if (!TextUtils.isEmpty(gsm)) {
                //the value of gsm like:xxxxxx,xxxxxx
                String imeiArray[] = gsm.split(",");
                if (imeiArray != null && imeiArray.length > 0) {
                    map.put("imei1", imeiArray[0]);
 
                    if (imeiArray.length > 1) {
                        map.put("imei2", imeiArray[1]);
                    } else {
                        map.put("imei2", mTelephonyManager.getDeviceId(1));
                    }
                } else {
                    map.put("imei1", mTelephonyManager.getDeviceId(0));
                    map.put("imei2", mTelephonyManager.getDeviceId(1));
                }
            } else {
                map.put("imei1", mTelephonyManager.getDeviceId(0));
                map.put("imei2", mTelephonyManager.getDeviceId(1));
 
            }
 
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        return map;
    }
}

下面贴出我的整个工具类

/**
 * 获取手机系统内部信息工具类
 * Created by yangbin on 3/2/2017.
 */
 
public class GetSystemInfoUtil {
 
 
    /**
     * 获取当前手机系统版本号
     *
     * @return 系统版本号
     */
    public static String getSystemVersion() {
        return Build.DISPLAY;
        //return android.os.Build.VERSION.RELEASE;
 
    }
 
 
    /**
     * 获取手机型号
     *
     * @return 手机型号
     */
    public static String getSystemModel() {
        return Build.MODEL;
    }
 
    /**
     * 获取手机厂商
     *
     * @return 手机厂商
     */
    public static String getDeviceBrand() {
        return Build.BRAND;
    }
 
 
    /**
     * 获取SN
     *
     * @return
     */
    public static String getSn(Context ctx) {
            String serial = null;
            try {
                Class<?> c = Class.forName("android.os.SystemProperties");
                Method get = c.getMethod("get", String.class);
                serial = (String) get.invoke(c, "ro.serialno");
 
            } catch (Exception ignored) {
 
            }
 
            return serial;
    }
 
    /**
     * 系统4.0的时候
     * 获取手机IMEI 或者Meid
     *
     * @return 手机IMEI
     */
    public static String getImeiOrMeid(Context ctx) {
        TelephonyManager tm = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
        if (tm != null) {
            return tm.getDeviceId();
        }
 
 
        return null;
    }
 
    /**
     * 拿到imei或者meid后判断是有多少位数
     *
     * @param ctx
     * @return
     */
    public static int getNumber(Context ctx) {
        int count = 0;
        long number = Long.parseLong(getImeiOrMeid(ctx).trim());
 
        while (number > 0) {
            number = number / 10;
            count++;
        }
        return count;
    }
 
 
    /**
     * Flyme 说 5.0 6.0统一使用这个获取IMEI IMEI2 MEID
     * @param ctx
     * @return
     */
    @RequiresApi(api = Build.VERSION_CODES.M)
    public static Map getImeiAndMeid(Context ctx) {
        Map<String, String> map = new HashMap<String, String>();
        TelephonyManager mTelephonyManager = (TelephonyManager) ctx.getSystemService(Activity.TELEPHONY_SERVICE);
        Class<?> clazz = null;
        Method method = null;//(int slotId)
 
        try {
            clazz = Class.forName("android.os.SystemProperties");
            method = clazz.getMethod("get", String.class, String.class);
            String gsm = (String) method.invoke(null, "ril.gsm.imei", "");
 
 
            String meid = (String) method.invoke(null, "ril.cdma.meid", "");
            map.put("meid", meid);
            if (!TextUtils.isEmpty(gsm)) {
                //the value of gsm like:xxxxxx,xxxxxx
                String imeiArray[] = gsm.split(",");
                if (imeiArray != null && imeiArray.length > 0) {
                    map.put("imei1", imeiArray[0]);
 
                    if (imeiArray.length > 1) {
                        map.put("imei2", imeiArray[1]);
                    } else {
                        map.put("imei2", mTelephonyManager.getDeviceId(1));
                    }
                } else {
                    map.put("imei1", mTelephonyManager.getDeviceId(0));
                    map.put("imei2", mTelephonyManager.getDeviceId(1));
                }
            } else {
                map.put("imei1", mTelephonyManager.getDeviceId(0));
                map.put("imei2", mTelephonyManager.getDeviceId(1));
 
            }
 
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
        return map;
    }
}

Activity调用

if (Build.VERSION.SDK_INT < 21) {
            //如果获取系统的IMEI/MEID,14位代表meid 15位是imei
            if (GetSystemInfoUtil.getNumber(getActivity()) == 14) {
                mTvPhoneMeid.setText(GetSystemInfoUtil.getImeiOrMeid(getActivity()));//meid
            } else if (GetSystemInfoUtil.getNumber(getActivity()) == 15) {
                mTvPhoneImei.setText(GetSystemInfoUtil.getImeiOrMeid(getActivity()));//imei1
            }
 
            // 21版本是5.0,判断是否是5.0以上的系统  5.0系统直接获取IMEI1,IMEI2,MEID
        } else if (Build.VERSION.SDK_INT >= 21) {
 
            Map<String, String> map = GetSystemInfoUtil.getImeiAndMeid(getActivity());
 
            mTvPhoneImei.setText(map.get("imei1"));//imei1
            mTvPhoneOtherImei.setText(map.get("imei2"));//imei2
            mTvPhoneMeid.setText(map.get("meid"));//meid
        }
        mTvPhoneSn.setText(GetSystemInfoUtil.getSn(getActivity()));//SN
        mTvPhoneModels.setText(GetSystemInfoUtil.getSystemModel());//手机型号 PRO6
        mTvVersionNumber.setText(GetSystemInfoUtil.getSystemVersion());//软件版本号  FLYME 6.02
    }


Android IMEI和MEID获取问题记录 记录 阅读详情

相关推荐

安卓系统IMEI修改器

安卓系统IMEI修改,又可一键修复。非常方便实用的一款,适合于安卓4.0系统。

获取双卡手机IMEI、IMSI

转载请注明出处: 现在 Android 手机越来越多的使用双卡双待,对于安装双卡的手机,有时我们想要获取两张卡的IMSI、IMEI等信息。我们知道 Android 中提供了相关 api,通过类 TelephonyManager可以获取IMSI、IMEI等信息,注意:在Android M及以后,在使用类TelephoneManager之前,需要动态申请权限android.permission.RE...

咻咻ing的专栏 4208

避坑指南:你的VASP CI-NEB计算为什么不收敛?常见错误分析与解决思路

本文深入解析VASP CI-NEB计算不收敛的常见问题,提供从结构准备到参数设置的系统解决方案。针对过渡态计算中的能量曲线异常、中间图像偏离等典型问题,详细介绍了诊断方法和实用工具,帮助研究者高效解决CI-NEB收敛难题,提升计算效率。

weixin_29698641的博客 430

Android改机 安卓改机软件 免root/不刷机/拒绝Xposed 实现 技术分析

Android改机 安卓改机软件 免root/不刷机/拒绝Xposed 实现 技术分析 举例说明:主要修改的参数有: Android_Id、IMEI、手机序列号、手机号码、WIFI-MAC、WIFI-Name、安卓系统版本、ROM固件、手机号码、手机型号、手机品牌、CPU型号、手机制造商、GPS定位、通话记录模拟、手机短信模拟、Wi-Fi列表 等…… 等各类安卓手机系统信息的修改功能 ———————————————— 最简单:模拟器+xp框架+改机软件 最简单的基本也是人人都会的,就是用模拟器和x.

z920981023的博客 2万+

【MATLAB+VScode】VScode调试MATLAB代码的终极指南

本文详细介绍了在VScode中调试MATLAB代码的完整方案。通过配置MATLAB Engine for Python作为桥梁,实现在VScode中设置断点、单步执行、查看变量等交互式调试功能,有效结合了VScode的现代化编辑体验与MATLAB的强大计算内核,显著提升开发效率。

weixin_29161719的博客 412

手把手教你用STM32F103实现CAN总线双机通信(基于CubeMX+HAL库)

本文详细介绍了基于STM32F103和STM32CubeMX工具实现CAN总线双机通信的完整流程。文章重点解析了CAN总线在嵌入式物联网应用中的优势,并深入讲解了波特率计算、过滤器配置、接收中断处理等关键细节,提供了实用的代码框架和可靠传输方案,帮助开发者规避常见陷阱,构建稳定的工业级通信系统。

weixin_29193259的博客 477

Android获取IMEI和MEID

IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,由15位数字组成的电子串号与每台手机一一对应,且该码全世界唯一。 MEID(Mobile Equipment Identifier)移动设备识别码,是CDMA手机的身份识别码,也是每台CDMA手机或通讯平板唯一的识别码,由14位数字组成。 在破解微信数据库时,需要获取手机的D...

木叶风的博客 8539

YOLOv8中Bottleneck模块的残差连接机制解析

本文深入解析了YOLOv8目标检测模型中Bottleneck模块的核心设计,重点阐述了其残差连接机制。该机制通过构建一条信息“捷径”,有效缓解了深层网络中的梯度消失问题,稳定了训练过程,并提升了特征提取效率。文章结合代码详细拆解了模块结构,并探讨了其在YOLOv8骨干网络与检测头中的关键作用及参数调优思路。

weixin_29061821的博客 253

小米6手机硬改 小米手机硬改支持IMEI MEID SN 蓝牙 WIFI 简单易学!有兴趣的可以联系我我们一起研究...............

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command + I 标题:Ctrl/Command + S

a4896815的博客 2937

DFRobot MGC3130电容式手势传感器库深度解析

电容式近场感应(Electric Near Field Sensing)是一种非接触、抗干扰的三维空间感知技术,其原理基于人体介电特性对高频电场的扰动响应,具备低功耗、高鲁棒性与零物理接触等核心优势。该技术广泛应用于医疗人机交互、工业HMI、智能家电等对可靠性与环境适应性要求严苛的嵌入式场景。DFRobot_MGC3130库正是面向Microchip MGC3130芯片的工程化实现,封装了I²C驱动、ASU硬件加速调度及多层抽象API,支持手势识别、触控检测与接近唤醒等功能动态切换。结合电容式近场感应与嵌入

weixin_34620658的博客 546

关于RS485通讯TVS器件选择的经验

先说经验结论 如果你的RS485用于频繁热拔插, 比如作为手持终端使用, 且手持器与目标板非隔离, 那么使用6.8CA可能是更好的选择.因为有热拔插会产生浪涌, 而且在非隔离的场合有些工业设备接地也是无法保障的.对于使用场景较为单一的, 点对点或点对多场合. 可以使用最大峰值脉冲电流较小的SM712.这是在长期的产品设计中得到的经验. 仅供参考 一. TVS的工作原理和作用 瞬态电压抑制二极管 ...

qq_20163075的博客 6508

关于安卓系统4.0/5.0/6.0获取单卡手机,双卡手机的imei1,imei2,meid(用反射来实现,史上最详细,最全面获取)--binbinyang

有的人问我要代码跟例子,上次在GITHUB上弄了一个,提供地址 给大家 https://github.com/binbinyYang/GetPhoneInfohttps://github.com/binbinyYang/GetPhoneInfo--------------------------------------------------------最近这3天,一直在做获取手机的,imei1,...

binbin 2万+

量化交易 米筐 案例:市值因子选股策略

案例:市值因子的选股策略 1.结果 获得超额收益 年化 49% 2. 从股票中选择市值小的股票 选定财务数据筛选 进行每日调仓(多因子选股调仓 周期频率会小一些) 3. 代码 估值有关指标 # 在沪深300股票中,选出市值比较小的10只股票 # 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。 def init(context): # 沪深300组合 stocks = index_components('000300.XSHG') # 沪深3

廷益_飞鸟的博客 2311

系统方向学习总结7--Android 10.0 app获取不到序列号解决方案

路径为:framework/base/services/core/java/com/android/server/os/DeviceIdentifiersPolicyService.java。10.0定制化开发中,在app开发过程中 会遇到获取系列号 总是返回unknow 的情况。说到SN IMEI1 IMEI2 我想起了几年前遇到的一个问题,当时也写了一个文章总结。最近跟着优快云大佬,参与一个 21天打卡的活动。让我了解到,现在获取SN的方法 可以用这个了。那时候版本比现在低的多。...

binbin 2845

大学计算 - NumPy库的矩阵运算 实训答案

本文介绍了三个NumPy矩阵操作的实验练习。第一关练习ndarray类型操作,包括矩阵构造、元素平方和计算、矩阵乘积运算和逆矩阵行列式计算;第二关针对matrix类型,涉及绝对值最大值获取、特定矩阵乘积运算和转置矩阵特征值计算;第三关实现Moore-Penrose伪逆矩阵计算,并与NumPy内置pinv函数结果比较误差。实验涵盖了NumPy核心矩阵操作,展示了从基础运算到高级矩阵分解的应用,帮助掌握科学计算中的矩阵处理技巧。

2403_89314916的博客 308

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android: 实测安卓10下无法获取MEID的解决办法(附smali代码)_20200928_七侠镇莫尛貝

安卓10下: String meid = ((TelephonyManager) context.getSystemService("phone")).getDeviceId(); 已经无效。 参考:https://blog.csdn.net/haojiagou/article/details/102500462 public static String getAndroidId (Context context) { String ANDROID_ID = Settings.

七侠镇莫小贝的同福客栈 1659

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android app修改IMEI号

电子设备都有唯一ID号,跟人的身份证号类似。Android 手机GSM WCDMA是号叫IMEI, CDMA手机叫MEID。* id is called "IMEI" on GSM phones and "MEID" on CDMA phones. 大部分Android工程师知道IMSI号是由生成工具写的,但并不清楚具体是怎么写的,这个 一般modem工程师比较熟悉。IMSI号一般都是NV 项,实际上是modem侧的一些文件,可以 理解为modem的文件系统,一般关注的有R...

求变,从思想开始 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

关于安卓机型写串码 改串码 端口开启和基带qcn等一些经验

第一种需求情况。主要是刷机 更新 降级导致的基带丢失 没有串码情况。这种需要写入基带和串码来解决故障,有的机型有可能重新线刷一次官方固件基带和串码就回复正常了。有的机型不行。具体实测为主。那么不管是写串码或者改串码或者写基带qcn都先要明白前提是什么?那么今天说的一个问题就是端口开启这边说的端口就是指写串码 改串码 写qcn的端口。没有开启端口。你无法读取原机基带谢谢,也就没办法读写。关于基础的教程。大家可以参考下我这个教程​​​​​​基带qcn的备份与写入相关 格机 nv报错_安卓机器的博客-优快云博客

小马哥的专栏 2万+

获取Android 手机设备信息:包括机型、操作系统版本号、手机分辨率、运营商、当前联网方式、IMEI、MEID、MAC地址

获取Android 手机设备信息:操作系统版本号、手机分辨率、运营商、当前联网方式、IMEI、MEID、MAC地址 包括双卡机型上的两个IMEI信息 /** * Created by Administrator on 2019/5/15. * 手机详细信息 */ public class DeviceInfoModel { private static final Str...

yuzhidao的博客 1万+

Android 获取手机唯一标识 IMEI号 应用名称、版本名、版本号

//获取手机IMEI public static String getIMEI(Context activity){ return ((TelephonyManager)activity.getSystemService(activity.TELEPHONY_SERVICE)).getDeviceId(); } /** * 获取应用程序名称 */ public static

baidu_34139251的博客 1466

电话状态权限及IMEI获取流程源码分析

从ActivityManager的checkCompomentPermission()方法中一堆的if语句,其实也不难发现,权限的判断,主要还是和appId,uid,pid等参数相关,一般第三方app都是通过PackageManagerService来判断的。mCi是GSMPhone基类PhoneBase中的一个全局变量,其类型为CommandsInterface,为一个Interface,接下来就看看这个Interface的实现,这里就举出所有实现类型了,实现这个Interface的是RIL这个类。

1661

IMEI/ESN/MEID号码

1、引言     正规的手机产品,在手机软件里面、手机背面以及手机的包装盒子上都是标识有IMEI号码或MEID号码的,这三个号码完全一致的话,才表示这个产品是由这个正规厂家生产的。其中IMEI号码是用于GSM和WCDMA制式的手机,而MEID号码是用于CDMA制式的手机。手机在国内进行入网测试时,是需要提供真实的IMEI或MEID,出口海外的手机也是需要真实的IMEI号码和MEID号码的。...

We all have our style! 883

获取安卓设备唯一ID

先介绍安卓设备中的几种ID 1、IMEI Android系统为开发者提供的用于标识手机设备的串号,也是各种方法中普适性较高的,可以说几乎所有的设备都可以返回这个串号,并且唯一性良好。它根据不同的手机设备返回IMEI,MEID或者ESN码。 缺陷: 非手机设备: 如果只带有Wifi的设备或者音乐播放器没有通话的硬件功能的话就没有这个DEVICE_ID; 权限: 获取DEVICE_ID需要RE

jiangtea的博客 5万+

获取设备IMEI ,手机名称,系统SDK版本号,系统版本号

1、获取设备IMEI TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String IMEIs = tm.getDeviceId() ; 需要的权限 &lt;uses-permission android:name="androi...

weixin_33807284的博客 517

Android--史上最全、最完整,获取设备信息、获取手机唯一标识

史上最详细、最完整、获取Android设备详细信息。

人生在世 4万+

Android 如何获取有效的DeviceId

Android 10上的DeviceId 从 Android 10 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 特许权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。 而这个权限是系统权限,也就是说一般应用将无法再获取IMEI 和序列号

公众号:BennuCTech 7824
上一篇: oracle中用Create Table创建表时,Storage中参数的含义!
下一篇: Android Studio中的package name和application ID
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值