使用Android应用访问电话号码

时间:2014-06-16 03:16:23

标签: android

通过我的Android应用程序,我想检索该应用运行的手机的电话号码。为此我使用下面的方法。

public void findTeleNumber(){
        TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE); 
        teleNumber = tm.getLine1Number();

        Toast.makeText(this, teleNumber , Toast.LENGTH_LONG).show();

    }

但是此方法返回电话号码的空值。有没有其他方法可以找到电话号码?

1 个答案:

答案 0 :(得分:0)

使用以下代码:

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个步骤作为一次性活动。稍后,只要需要电话号码,请使用共享首选项中的可用值。