【问题标题】:Retrieving phone number from SIM card error从 SIM 卡错误中检索电话号码
【发布时间】:2013-07-23 20:42:49
【问题描述】:

这是我的代码

TelephonyManager mTelephonyMgr =
    (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);

    String sDeviceID = mTelephonyMgr.getDeviceId();
    String sSimSerial = mTelephonyMgr.getSimSerialNumber(); 
String sSimlineNumber = mTelephonyMgr.getLine1Number();

借助此功能,我想从他/她的 SIM 卡中读取用户电话号码,我还在清单文件中添加了 READ_PHONE_STATE 权限。 Eclipse 在我的代码中没有显示任何错误,但我最终还是什么也没得到。我的代码有什么问题吗?

【问题讨论】:

  • 并非所有公司都会在 SIM 卡甚至手机中提供/启用电话号码。在我的 Galaxy s2 中,我什至在设置菜单中都看不到我的电话号码...
  • 经过一番研究,我发现电话号码实际上并没有存储在 SIM 卡中。电话号码通过每张 SIM 卡具有的唯一密钥从供应商网络中检索。有关此主题的更多讨论,请访问右侧链接的主题。

标签: android


【解决方案1】:

有关此问题的更多信息,请参阅this thread。具体来说,以下对已接受答案的评论:

其实,并不是那么完美。上次我尝试这种方法时,它报告了我手机原来的电话号码,然后我的旧手机号码被移植到它。它可能仍然存在,因为“设置”应用程序仍然显示该已失效的数字。此外,有报道称某些 SIM 卡会导致此方法返回 null。话虽如此,我不知道有更好的答案。 – CommonsWare

由于开发人员无法控制的原因,获取用户的电话号码似乎并不像要求操作系统交出它那么简单。另一种方法是使用操作系统提供的号码填充您需要的任何字段,但也让用户编辑电话号码以防操作系统出错。

【讨论】:

    猜你喜欢
    • 2019-02-02
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多