Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取android应用程序所在的电话号码_Android - Fatal编程技术网

获取android应用程序所在的电话号码

获取android应用程序所在的电话号码,android,Android,嗨,我正在写一个Android应用程序,它只允许注册手机用户使用。如何获取android应用程序所在的电话号码。谢谢您可以使用以下代码获取手机号码 TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); String mMobileNo = telephonyManager.getLine1Number(); 在AndroidManifest.xml中

嗨,我正在写一个Android应用程序,它只允许注册手机用户使用。如何获取android应用程序所在的电话号码。谢谢

您可以使用以下代码获取手机号码

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String mMobileNo =  telephonyManager.getLine1Number();
在AndroidManifest.xml中添加以下权限

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

问题:它可以为空 根据文档
.getLine1Number()
“返回第1行的电话号码字符串,例如,对于GSM电话的MSISDN。如果不可用,则返回null。”

显然,
.getLine1Number()
从SIM卡读取此信息,因此如果操作员设置了MSISDN字段,它将返回其值,如果未设置此字段,则返回null

在您的情况下,您的SIM卡可能没有由运营商填充的此字段

有关更多信息,您可以

解决方案
这不是验证手机号码的正确方法,您可以像App一样进行验证,您可以从中找到它。

TelephonyManager
是一种方法:

TelephonyManager tm=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
number = tm.getLine1Number();
请记住,这需要:
读取电话状态
权限。

电话管理器
上呼叫即可

TelephonyManager mTelephonyManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
userPhoneNumber = mTelephonyManager.getLine1Number();
摘自

公共字符串getLine1Number()

API级别1中添加的返回第1行的电话号码字符串,例如 例如,GSM电话的MSISDN。如果不可用,则返回null

需要权限:读取\u电话\u状态


经允许:读取电话状态

我不会对电话号码使用上述任何技术,因为这些api在所有电话中都不一致。Spice、Micromax和许多三星手机都不返回电话号码。使用api可以很好地猜测用户的电话号码,但别忘了提示用户进行更正


HTC手机在这方面要好得多,API在所有HTC手机上都能正常工作。

大约两个月前,我也想解决这个问题,并认为只要像whatsapp那样做就行了。但我突然想到,我必须以自己的方式编写代码,以确认我的android应用程序中使用的用户手机号码。所以我把这个问题贴在So上,但并没有得到更好的答案,过了一段时间,我写了自己的方式代码来获取用户的手机号码。这是我问题的链接,请检查我的答案。谢谢你,曼尼什。这真的很有帮助。您应该知道它可能返回null;
TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
  mPhoneNumber = tMgr.getLine1Number();