Android IMSI和IMEI

 描述:
  IMSI是一个 唯一的数字, 标识了GSM和UMTS 网络里的唯一一个用户. 它 存储 在手机的SIM卡里,它会通过手机发送到网络上.

  IMEI也是一串唯一的数字, 标识了 GSM 和 UMTS网络里的唯一一个手机. 它通常被打印在手机里电池下面的那一面,拨  *#06# 也能看到它.

  代码: 这里是你在Android里读出 唯一的 IMSI-ID / IMEI-ID 的方法。
Java:
         String myIMSI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMSI);
// within my emulator it returns:   310995000000000

String myIMEI = android.os.SystemProperties.get(android.telephony.TelephonyProperties.PROPERTY_IMEI);
// within my emulator it returns:   000000000000000

 

     手机号码不是所有的都能获取。只是有一部分可以拿到。这个是由于移动运营商没有把手机号码的数据写入到sim卡中。

  sim卡只有唯一的编号,供网络与设备识别那就是 imsi号码,手机的信号也可以说是通过这个号码在网络中传递的,并不是手机号码。

  试想,你的sim丢失后,补办一张新的会换号码吗? —不会

  就是因为在你的手机号码对应的 imsi号 在移动运营商中被修改成新sim卡的imsi号码。

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

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

 

/**
     * 获得手机的一些标志符
     *
     * @param c
     * @return String 手机的类型
     */
    public String fetch_status(Context c) {
        TelephonyManager tm = (TelephonyManager) c
                .getSystemService(Context.TELEPHONY_SERVICE);//     
        String str = "";
        String IMSI = tm.getSubscriberId();
        str += "DeviceId(IMEI) = " + tm.getDeviceId() + "/n";
        str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion()
                + "/n";
        str += "Line1Number = " + tm.getLine1Number() + "/n";
        return str;
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云台095

省钱后记得打赏哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值