android – getLine1Number()返回空白,不为null

前端之家收集整理的这篇文章主要介绍了android – getLine1Number()返回空白,不为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想获得手机号码的设备.我已经使用 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();
}

猜你在找的Android相关文章