我想获得手机号码的设备.我已经使用
Alex Volovoy’s
This Link以下代码引用
TelephonyManager tMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String mPhoneNumber = tMgr.getLine1Number(); Log.d("msg","Phone : "+mPhoneNumber);
Logcat中的OUTPUT:
没有SIM卡手机返回:
02-01 17:22:45.472: D/msg(29102): Phone : null
用Simcard:
02-01 17:22:45.472: D/msg(29102): Phone :
我也已经在< uses-permission android:name =“android.permission.READ_PHONE_STATE”/>在AndroidManifest.xml中
所以我该怎么做?有没有错误?
解决方法
要从设备获取电话号码,首先必须在设备上设置自己的电话号码,只需通过:
设置 – >关于电话 – >状态 – >我的电话号码
SIM卡上的电话号码不适用于每个操作符,如在印度,Sim没有任何记忆中的电话号码,所以我们无法从这些连接中获取电话号码.然而,一些国家和操作符已经在SIM卡上存储了电话号码,我们可以得到这些.为了使其适用于所有设备,我们可以采用两种策略:
为了避免这个问题,我们可以抓住错误并相应地工作.喜欢:
TelephonyManager tMgr = (TelephonyManager) ShowMyLocation.this.getSystemService(Context.TELEPHONY_SERVICE); String MyPhoneNumber = "0000000000"; try { MyPhoneNumber =tMgr.getLine1Number(); } catch(NullPointerException ex) { } if(MyPhoneNumber.equals("")){ MyPhoneNumber = tMgr.getSubscriberId(); }