如何获得手机号码安卓手机?

时间:2014-10-15 06:41:56

标签: android phone-number telephonymanager

我尝试在android中使用getLine1Number()获取电话号码,但它返回null。有时我还需要使用另一个SIM卡来获取它的号码。

如何随时获取电话号码?

7 个答案:

答案 0 :(得分:1)

如果您指的是从Android获取电话号码,您可以试试!!

TelephonyManager phoneManager = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = phoneManager.getLine1Number();

在清单中添加权限

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

解决方法

  • 在您的代码中,如果您确实需要用户电话号码和上述代码 返回null
  • 如果您获得null,则可以显示一些内容以吸引用户 他/她自己输入电话号码。

答案 1 :(得分:1)

您可以使用以下代码获取电话号码:

TelephonyManager tele = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String number = tele.getLine1Number();

并向清单文件添加以下权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

答案 2 :(得分:1)

在GSM网络上,基本上你不能!电话号码只能通过网络而不是手机或SIM卡来识别。

运营商网络将IMEI SIM号码与有效手机相关联。这就是为什么可以实现号码可携带性的原因:您可以使用相同的电话号码拥有不同的IMEI,或者您可以使用稍后会更改的电话号码的IMEI。

如果您真的想知道,可以向特定服务发送短信,或直接向最终用户询问。

答案 3 :(得分:0)

使用TelephonyManager即可实现此目标。

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

在manifest.xml中指定此行

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

答案 4 :(得分:0)

发布在我的earlier answer

使用以下代码:

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

在AndroidManifest.xml中,授予以下权限:

 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

但请记住,此代码并不总是有效,因为手机号码取决于SIM卡和网络运营商/手机运营商。

另外,请尝试检入 电话 - &gt;设置 - &gt;关于 - &gt;电话身份 ,如果您能够在那里查看号码,则从上面的代码获取电话号码的概率更高。如果您无法在设置中查看电话号码,那么您将无法通过此代码获取!

建议的解决方法:

  1. 将用户的电话号码作为用户的手动输入。
  2. 通过短信将代码发送到用户的手机号码。
  3. 要求用户输入密码以确认电话号码。
  4. 将号码保存在共享偏好中。
  5. 在应用首次发布期间,将上述4个步骤作为一次性活动。稍后,只要需要电话号码,请使用共享首选项中的可用值。

答案 5 :(得分:0)

TelephonyManager tele = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String number = tele.getLine1Number();

答案 6 :(得分:0)

您通过undefined API获得的号码存储在SIM / USIM卡中。因此该功能的结果取决于SIM / USIM卡的实现。