这是我的代码
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在我的代码中没有显示错误,但最后我什么都没得到。我的代码有什么问题吗?
答案 0 :(得分:0)
有关此问题的详细信息,请参阅this thread。具体来说,下面对已接受答案的评论:
实际上,并不是那么完美。上次我尝试这种方法时,它报告了我的手机原来的电话号码,在我的旧手机号码被移植到它之前。它可能仍然可以,因为设置应用程序仍然显示已解散的数字。此外,有报告称某些SIM会导致此方法返回null。话虽如此,我不知道更好的答案。 - CommonsWare
似乎获取用户的电话号码并不像要求操作系统将其移交一样简单,原因是开发人员无法控制。另一种方法是使用操作系统提供的数字填充您需要的任何字段,但也可以让用户编辑电话号码以防操作系统出错。