我尝试在android中使用getLine1Number()
获取电话号码,但它返回null。有时我还需要使用另一个SIM卡来获取它的号码。
如何随时获取电话号码?
答案 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;电话身份 ,如果您能够在那里查看号码,则从上面的代码获取电话号码的概率更高。如果您无法在设置中查看电话号码,那么您将无法通过此代码获取!
建议的解决方法:
在应用首次发布期间,将上述4个步骤作为一次性活动。稍后,只要需要电话号码,请使用共享首选项中的可用值。
答案 5 :(得分:0)
TelephonyManager tele = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String number = tele.getLine1Number();
答案 6 :(得分:0)
您通过undefined
API获得的号码存储在SIM / USIM卡中。因此该功能的结果取决于SIM / USIM卡的实现。