android获取手机号

最近做一个项目 需要获取到手机的相关信息

一个朋友的看法:

从技术层面而言,手机的SIM卡上并不会存储手机号码信息,只会存储IMSIInternational Mobile Subscriber Identification Number)。手机号码(MSISDN)都是登记在HLRHome Location Register)中的,在HLR中会把IMSIMSISDN关联在一起。

 中国移动的SIM卡里只有IMSI号码而没有存储手机号码,在中国移动的HLR中会有一张映射表,专门用于把用户手机SIM卡的IMSI号映射成为用户的手机号码,这就是移动丢卡不丢号的业务也就是缘于此,也是一卡多号的原理。而电信CDMA(原来联通CDMA)的机卡合一的手机卡里会同时存在IMSI和手机号码。 

客户端获取:在客户端对移动用户而言只能够获取诸如IMSIIMEI号等,并不能直接获得手机号。而对电信CDMA机卡合一用户可以获取手机号码。
服务器端获取:在早期的移动白名单中是能够获得明文的手机号的,最近移动策略变了,手机号变成了天书般的唯一串号。因此目前从服务器端直接获取手机号也不行了。
 目前能够想到的能够相对可靠地自动获取用户手机号的方法只有通过短信方式。

通过短信方式:让用户上行一条短信,通过短信网关获取用户手机号,从而将用户id与手机号绑定

另一个朋友的看法:


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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值