我想获取插入设备的SIM卡的手机号码。我知道作为pr,android SDK TelephoneManger
是我们可以通过getLine1Number()
方法获取它的类。但它总是返回空值。
查询:
答案 0 :(得分:3)
您正在使用正确且唯一可用于普通用户(AFAIK)的方法。它主要依赖于SIM(它不是必须的),并且在某些情况下可能依赖于设备(getLine1Number()未正确实现)。
更准确地说,IMSI唯一地识别SIM。但是MSISDN(用户号码)与SIM没有唯一关系,因为可以在SIM上更改MSISDN。网络可以使用来自SIM的IMSI在HLR中找到MSISDN并建立呼叫。
因此,MSISDN不一定要在SIM卡上。
答案 1 :(得分:1)
答案 2 :(得分:1)
在这种情况下,您始终使用方法getLine1Number()方法使用SharedPreference保存手机。当您安装应用程序时,您的电话号码是saven,当使用新的SIM卡时,然后发送短信到您注册的号码。您必须在启动应用程序后始终检查您存储的号码是否与您的新号码相同。如果没有任何相同的信息,那么您的应用程序将发送短信。