从真实设备获取移动设备

时间:2011-02-11 09:34:39

标签: android

我想获取插入设备的SIM卡的手机号码。我知道作为pr,android SDK TelephoneManger是我们可以通过getLine1Number()方法获取它的类。但它总是返回空值。

查询:

  • 我可以从中获取手机号码吗? 设备
  • 是SIM依赖还是在某些情况下 设备依赖?
  • 从设备获取手机号码的其他任何方式?

3 个答案:

答案 0 :(得分:3)

您正在使用正确且唯一可用于普通用户(AFAIK)的方法。它主要依赖于SIM(它不是必须的),并且在某些情况下可能依赖于设备(getLine1Number()未正确实现)。

更准确地说,IMSI唯一地识别SIM。但是MSISDN(用户号码)与SIM没有唯一关系,因为可以在SIM上更改MSISDN。网络可以使用来自SIM的IMSI在HLR中找到MSISDN并建立呼叫。

因此,MSISDN不一定要在SIM卡上。

答案 1 :(得分:1)

您应该查看this question及其评论。

某些SIM卡似乎会导致getLine1Number()返回null ...并且没有人找到解决此问题的方法。

More information here

答案 2 :(得分:1)

在这种情况下,您始终使用方法getLine1Number()方法使用SharedPreference保存手机。当您安装应用程序时,您的电话号码是saven,当使用新的SIM卡时,然后发送短信到您注册的号码。您必须在启动应用程序后始终检查您存储的号码是否与您的新号码相同。如果没有任何相同的信息,那么您的应用程序将发送短信。