1

这是我的代码

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

4

1 回答 1

0

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

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

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

于 2013-07-17T16:42:04.887 回答