通过我的Android应用程序,我想检索该应用运行的手机的电话号码。为此我使用下面的方法。
public void findTeleNumber(){
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
teleNumber = tm.getLine1Number();
Toast.makeText(this, teleNumber , Toast.LENGTH_LONG).show();
}
但是此方法返回电话号码的空值。有没有其他方法可以找到电话号码?
答案 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;电话身份 ,如果您能够在那里查看号码,则从上面的代码获取电话号码的概率更高。如果您无法在设置中查看电话号码,那么您将无法通过此代码获取!
建议的解决方法:
在应用首次启动期间,将上述4个步骤作为一次性活动。稍后,只要需要电话号码,请使用共享首选项中的可用值。