Android getLine1Number()不工作

Android getLine1Number()不工作,android,Android,我想用android获取SIM卡电话号码,但当我获取该号码时,长度为零! 代码如下: TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(getApplicationContext().TELEPHONY_SERVICE); String s=mTelephonyMgr.getLine1Number(); Toast.makeText(getBaseContext(), "The length is "+s.l

我想用android获取SIM卡电话号码,但当我获取该号码时,长度为零! 代码如下:

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(getApplicationContext().TELEPHONY_SERVICE);
String s=mTelephonyMgr.getLine1Number();
Toast.makeText(getBaseContext(), "The length is "+s.length(), Toast.LENGTH_LONG).show();
但它将“长度为零”。当我打印号码时,它不会打印任何内容。
有人能给我一个解决方案吗?

获取SIM卡号码

 TelephonyManager telemamanger = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    String getSimSerialNumber = telemamanger.getSimSerialNumber();
获取电话号码

TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
  mPhoneNumber = tMgr.getLine1Number();

如果适用,这将向您展示其他Wie Show。

伙计,我也遇到了这种情况,最终我知道了解决方案

您是否插入了SIM卡或正在Emulator中测试它?一些SIM卡只是不提供这些信息。在Emulator上可以,但在我的手机上不可以。
getLine1Number()
返回SIM卡上的电话号码。有时手机号码在SIM卡上,有时不在。有时这是错误的。获取用户电话号码的唯一可靠方法是向他索要。它没有显示我的电话号码-\你想要什么sim卡或电话号码?我需要电话号码我也看到过这个问题,它高度依赖sim卡和设备。你不能保证安卓能提供你设备的电话号码。