从SIM卡错误中检索电话号码

时间:2013-07-17 16:33:35

标签: android

这是我的代码

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在我的代码中没有显示错误,但最后我什么都没得到。我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

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

  

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

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