精华内容
下载资源
问答
  • AT指令EGMR-修改设备的IMEI号码

    千次阅读 2019-05-23 15:26:51
    AT+EGMR 读和写IMEI号码 AT+EGRM=2,7 读IMEI号 AT+EGRM=1,7,"*******...国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号、手机“串号”,用于在移动电话...

    AT+EGMR 读和写IMEI号码

    AT+EGRM=2,7 读IMEI号
    AT+EGRM=1,7,"***************" 写IMEI号(15位)

    查询IMEI的其他指令
    AT+CGSN=1

    IMEI号码解释说明
    国际移动设备识别码(International Mobile Equipment Identity,IMEI),即通常所说的手机序列号、手机“串号”,用于在移动电话网络中识别每一部独立的手机等移动通信设备,相当于移动电话的身份证。
    手机IMEI码由15-17位数字组成。
    第一部分 TAC,Type Allocation Code,类型分配码,由8位数字组成(早期是6位),是区分手机品牌和型号的编码,该代码由GSMA及其授权机构分配。其中TAC码前两位又是分配机构标识(Reporting Body Identifier),是授权IMEI码分配机构的代码,如01为美国CTIA,35为英国BABT,86为中国TAF。
    第二部分 FAC,Final Assembly Code,最终装配地代码,由2位数字构成,仅在早期TAC码为6位的手机中存在,所以TAC和FAC码合计一共8位数字。FAC码用于生产商内部区分生产地代码。
    第三部分 SNR,Serial Number,序列号,由第9位开始的6位数字组成,区分每部手机的生产序列号。
    第四部分 CD,Check Digit,验证码,由前14位数字通过Luhn算法计算得出。
    第五部分 SVN,Software Version Number,软件版本号,区分同型号手机出厂时使用的不同软件版本,仅在部分品牌的部分机型中存在。

    展开全文
  • 这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...

     

    Android手机号码获取问题

      手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。

      那么手机号为什么有的就能显示呢?

      这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。

      对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。

      如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。

      移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过.

      能够读取SIM卡号的话应该有前提.那就是SIM卡已经写入了本机号码,不然是无法读取的。

      //记得在manifest file中添加

      < uses-permission

      android:name="android.permission.READ_PHONE_STATE" />
     
     
          具体处理代码:(程序在模拟器上无法实现,必须连接手机)

          获取IMSI标识

          String myIMSI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);

          获取手机号

          TelephonyManager telephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); 
          String tel = telephonyMgr.getLine1Number(); 
          
          获取IMEI
          String imei = tm.getDeviceId();
    展开全文
  • Android 获取手机号码

    2012-09-24 12:05:08
    这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...

            手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。 
    那么手机号为什么有的就能显示呢? 
    这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。 
    对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。 
    如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。 
    移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过. 
    能够读取SIM卡号的话应该有前提.那就是SIM卡已经写入了本机号码,不然是无法读取的。

     

    /**
         * 获取当前的手机号
         * 
         */
        public static String getLocalNumber(Context ctx) {
                TelephonyManager tManager = (TelephonyManager) ctx
                                .getSystemService(ctx.TELEPHONY_SERVICE);
                String number = tManager.getLine1Number();
                Log.e(TAG,"所获得的手机号:"+number);
                return number;
        }
        

    展开全文
  • Android手机号码获取问题

    千次阅读 2016-07-14 17:48:45
    这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...

    一、文章一 

     手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。
        那么手机号为什么有的就能显示呢?
        这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
    对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。
        如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。
        移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过.
        能够读取SIM卡号的话应该有前提.那就是SIM卡已经写入了本机号码,不然是无法读取的。

    具体处理代码:(程序在模拟器上无法实现,必须连接手机)

      //创建电话管理

      TelephonyManager tm = (TelephonyManager)

      //与手机建立连接
      activity.getSystemService(Context.TELEPHONY_SERVICE);

      //获取手机号码

      String phoneId = tm.getLine1Number();

      //记得在manifest file中添加
        <uses-permission
        android:name="android.permission.READ_PHONE_STATE" />



    二、文章二

    两个方案:1 通过android.permission.READ_PHONE_STATE读取  2 通过短信过滤,读取手机号。

    按照第1个方案,AndroidManifest.xml需要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

    创建一个类PhoneInfo

    复制代码
    package com.hbj.test;
    
    import android.content.Context;  
    import android.telephony.TelephonyManager;  
      
    /** 
     * 读取手机设备信息测试代码 
     */  
    public class PhoneInfo {  
      
        private TelephonyManager telephonyManager;  
        /** 
         * 国际移动用户识别码 
         */  
        private String IMSI;  
        private Context cxt;  
        public PhoneInfo(Context context) {  
            cxt=context;  
            telephonyManager = (TelephonyManager) context  
                    .getSystemService(Context.TELEPHONY_SERVICE);  
        }  
      
        /** 
         * 获取电话号码 
         */  
        public String getNativePhoneNumber() {  
            String NativePhoneNumber=null;  
            NativePhoneNumber=telephonyManager.getLine1Number();  
            return NativePhoneNumber;  
        }  
      
        /** 
         * 获取手机服务商信息 
         */  
        public String getProvidersName() {  
            String ProvidersName = "N/A";  
            try{  
            IMSI = telephonyManager.getSubscriberId();  
            // IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。  
            System.out.println(IMSI);  
            if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {  
                ProvidersName = "中国移动";  
            } else if (IMSI.startsWith("46001")) {  
                ProvidersName = "中国联通";  
            } else if (IMSI.startsWith("46003")) {  
                ProvidersName = "中国电信";  
            }  
            }catch(Exception e){  
                e.printStackTrace();  
            }  
            return ProvidersName;  
        }  
          
        public String  getPhoneInfo(){  
             TelephonyManager tm = (TelephonyManager)cxt.getSystemService(Context.TELEPHONY_SERVICE);  
                StringBuilder sb = new StringBuilder();  
      
                sb.append("\nDeviceId(IMEI) = " + tm.getDeviceId());  
                sb.append("\nDeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion());  
                sb.append("\nLine1Number = " + tm.getLine1Number());  
                sb.append("\nNetworkCountryIso = " + tm.getNetworkCountryIso());  
                sb.append("\nNetworkOperator = " + tm.getNetworkOperator());  
                sb.append("\nNetworkOperatorName = " + tm.getNetworkOperatorName());  
                sb.append("\nNetworkType = " + tm.getNetworkType());  
                sb.append("\nPhoneType = " + tm.getPhoneType());  
                sb.append("\nSimCountryIso = " + tm.getSimCountryIso());  
                sb.append("\nSimOperator = " + tm.getSimOperator());  
                sb.append("\nSimOperatorName = " + tm.getSimOperatorName());  
                sb.append("\nSimSerialNumber = " + tm.getSimSerialNumber());  
                sb.append("\nSimState = " + tm.getSimState());  
                sb.append("\nSubscriberId(IMSI) = " + tm.getSubscriberId());  
                sb.append("\nVoiceMailNumber = " + tm.getVoiceMailNumber());  
               return  sb.toString();  
        }  
    }  
    复制代码
    MytestActivity里面这么使用:
    复制代码
            PhoneInfo siminfo = new PhoneInfo(MytestActivity.this);
            System.out.println("getProvidersName:" + siminfo.getProvidersName());
            System.out.println("getNativePhoneNumber:"
                    + siminfo.getNativePhoneNumber());
            System.out.println("------------------------");
            System.out.println("getPhoneInfo:" + siminfo.getPhoneInfo());
            tv.setText("getProvidersName:" + siminfo.getProvidersName()
                    + "getNativePhoneNumber:" + siminfo.getNativePhoneNumber()
                    + "getPhoneInfo:" + siminfo.getPhoneInfo());
    复制代码

    看LOGCAT日志,结果如下:

    ------------------------------------------------------------

    04-01 16:20:57.105: I/System.out(952): 460003121934674
    04-01 16:20:57.105: I/System.out(952): getProvidersName:中国移动
    04-01 16:20:57.115: I/System.out(952): getNativePhoneNumber:136XXXXXXX
    04-01 16:20:57.115: I/System.out(952): ------------------------
    04-01 16:20:57.145: I/System.out(952): getPhoneInfo:
    04-01 16:20:57.145: I/System.out(952): DeviceId(IMEI) = 352XXXXXXXX61328
    04-01 16:20:57.145: I/System.out(952): DeviceSoftwareVersion = 01
    04-01 16:20:57.145: I/System.out(952): Line1Number = 136XXXXXXX
    04-01 16:20:57.145: I/System.out(952): NetworkCountryIso = cn
    04-01 16:20:57.145: I/System.out(952): NetworkOperator = 46000
    04-01 16:20:57.145: I/System.out(952): NetworkOperatorName = 中国移动
    04-01 16:20:57.145: I/System.out(952): NetworkType = 2
    04-01 16:20:57.145: I/System.out(952): PhoneType = 1
    04-01 16:20:57.145: I/System.out(952): SimCountryIso = cn
    04-01 16:20:57.145: I/System.out(952): SimOperator = 46000
    04-01 16:20:57.145: I/System.out(952): SimOperatorName = CMCC
    04-01 16:20:57.145: I/System.out(952): SimSerialNumber = 898xxxxxx90108
    04-01 16:20:57.145: I/System.out(952): SimState = 5
    04-01 16:20:57.145: I/System.out(952): SubscriberId(IMSI) = 46000xxxxxxxx4674

    那么我们来解释一下上面的信息具体代表啥意思。

     

    getNativePhoneNumber 获取的手机号

    DeviceId(IMEI)手机  国际移动用户识别码

    NetworkOperator  移动运营商编号

    NetworkOperatorName  移动运营商名称

    SimSerialNumber  SimOperator  SimCountryIso  SimSerialNumber  SubscriberId(IMSI)   关于手机SIM卡的一些详细信息

     

    其实代码中没有写 获取System.ANDROID_ID这个操作,因为很多手机设备获取不到andnroid_id 

    当然了,我们今天主要讲述<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 光使用这个权限我们可以获得的手机设备信息和手机号

    如果想获得WIFI,蓝牙,GPS,读写SDCARD更多的信息,就需要添加其它的权限。

    此外,本次测试我拿自己的手机SIM卡测试是可以获取到手机号码的,当然了有些手机号码是获取不到的,这里也给大家罗列了原因,


    手机号码不是所有的都能获取。只是有一部分可以拿到。

    这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张新的会换号码吗?是不会的.就是因为在你的手机号码对应的IMSI号 在移动运营商中被修改成新SIM卡的IMSI号码。

    那么手机号为什么有的就能显示呢?
      这个就像是一个变量,当移动运营商为它赋值了,它自然就会有值。不赋值自然为空。
      对于移动的用户,手机号码(MDN)保存在运营商的服务器中,而不是保存在SIM卡里。SIM卡只保留了IMSI和一些验证信息。手机每次入网注册的时候,都会以短信的形式将IMSI及验证信息上传到运营商的服务器,服务器在完成注册动作之后,会以短信的形式将注册的结果下发到手机里。下发的内容会因条件不同而不同。
      如果服务器在下发的短信中,不包含手机的号码,手机是无法取得电话号码。如果短信中包含了号码,手机才会将其缓存,以备他用.此外,对于其他运行商的SIM卡或者UIM卡,MDN有可能保存在UIM卡中。100%能够取得本机号码不太可能。
      移动神州行,联通的卡是可以取到的.动感地带的取不到.别的卡还没有试过.
      能够读取SIM卡号的话应该有前提.那就是SIM卡已经写入了本机号码,不然是无法读取的。

     

    那么我们怎么解决这个问题呢?这就是第2方案:通过10001反馈信息截取手机号码

    不好实现?一个原因搞定你:项目需要!!

    查了下手机的基本信息那一栏里,也没有找到手机号,看来手机中似乎没有存储这手机号。那么我就只有使用变通的手法来获取手机号了。

    就是给10001发送一个短信,找了一下,发个501查询套餐情况就可以。10001会给你个反馈信息,其中包含手机号码

    那么我们发送短信,然后监听得到此短信,然后分解字符串那么就可以得到手机号了。

    如果是联通或者移动应该也是有类似的情况。何况给他们发短信应该不会收费。。。O(∩_∩)O~

    程序如何实现?参看博客:http://www.cnblogs.com/android100/p/android-get-num.html


    展开全文
  • 这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...
  • 这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...
  • Android笔记系列--获取手机号码

    千次阅读 2018-04-24 09:52:58
    这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...
  • Android不一定能获得手机号码

    千次阅读 2011-06-07 19:12:00
    这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...
  • 这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...
  • 这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办一张...
  • app封了设备怎么解除 原生安卓修改

    千次阅读 2020-10-29 09:39:50
    全新的底层数据包括例如i m e i 1、i m e i 2、mac、m e id、s n、WiFimac、等等!修改完毕这些重要的参数以后,即可成为一部没有被app后台...每一台终端手机设备和我们人一样的,都有独立的识别信息,例如i m e i 1
  • 每一台设备终端手机,都有独立的可识别信息,例如i m e i、mac、m e id、s n等等! 所以当APP读取你设备信息之后会存储到服务器里面,那么只要账号频繁在这个载体上注册或是登录过多,就会被记录,包括你手机ROOT...
  • 这个是由于移动运营商没有把手机号码的数据写入到sim卡中.SIM卡只有唯一的编号,供网络与设备 识别那就是IMSI号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。试想,你的SIM丢失后,补办...
  • 1.1 概念服务集识别码(英语:Service Set Identifier,SSID)是一个或一组基础架构模式无线网络的标识,依照标识方式又可细分为两种:基本服务集识别码(BSSID),表示的是AP的数据链路层的MAC地址扩展服务...
  • 导语:利用生物识别技术进行身份认证、人机交互已经成为很多...阿里声纹识别技术应用于阿里系平台的用户身份核验,可以通过声纹识别技术进行手机淘宝的密码修改,生物特征标识可以为移动端设备提供额外更多的安...
  • 手机imie号介绍使用

    2014-11-16 11:27:00
    http://zhidao.baidu.com/question/3682744.html手机机身号又叫手机串号,是国际移动设备识别码,GSM手机机身号简称IMEI,CDMA手机机身号简称ESN。 一款手机对应一个唯一的IMIE或ESN,它在生产过程中固化在手机芯片...

空空如也

空空如也

1 2 3 4 5 6
收藏数 120
精华内容 48
关键字:

修改手机设备识别码