我想获取移动用户数,默认情况下将其视为用户名,当我使用以下代码获取移动电话号码时,它会返回一个空字符串
TelephonyManager tMgr = (TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = tMgr.getLine1Number();
String mobNo = mPhoneNumber.replace("+", "");
我发现的一个原因是我的电话号码 未知 设置 - >关于电话 - >状态 - > SIM状态 。如何纠正这个问题而不给用户带来任何负担。
答案 0 :(得分:1)
至少有一些SIM卡/操作员没有提供数字 - 我已经看过了,你已经看过了。你可能无能为力。
答案 1 :(得分:1)
请参阅getLine1Number()文档。它说如果它不可用,则返回null。所以@sstn部分正确。你不能太多。据我记忆,这个方法获得存储在SIM中的数字。一些提供商限制访问,而另一些提供商不提供访问。
然而,如果您真的想要自动从网络获取电话号码,那么您可以再试一次。大多数网络提供商都提供自己的API。 API可能要求用户通过网络数据连接到互联网,而不是Wi-Fi或任何其他方法。虽然不同国家的不同提供者可能会有所不同。您可以使用getNetworkOperator()识别网络提供商,然后使用提供商特定的API来获取该号码。但不确定它是否免费。例如:在加拿大,Telus有API,但它要求您与他们合作。与Rogers等相似
如果您不想经历这种痛苦,最后一个选择是要求用户输入它。如果您担心其有效性,那么您可以随时进行一次密码验证。
希望它有所帮助。