我正在为Android(2.1+)编写应用程序,我想使用当前手机的电话号码。很多谷歌搜索给我带来了以下内容:
String number=(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE).getLine1Number();
与权限一起:READ_PHONE_STATE。
但我的问题是它返回null。在搜索时,我注意到之前已经多次询问过这个问题,并且几乎在所有这些问题中,据说数字并不总是可用。
在测试时我发现在我自己的手机上它给了我null。但是另一个应用程序(例如,WhatsApp)能够识别我的电话号码。
那么我想知道,他们是怎么做到的?
答案 0 :(得分:3)
您可以查看本教程中的How to Get Own Mobile Number Programmatically
请阅读我在下面的教程中写的所有信息
正如我所读到的,到目前为止,有些人在不同方面存在冲突 输出行为。据报道,有些SIM会导致这种情况 返回null的方法。
因为手机没有保证解决这个问题的方法 号码不是物理存储在所有SIM卡上,也不是广播的 网络到手机。在一些国家尤其如此 这需要物理地址验证,编号分配 只发生在事后。
答案 1 :(得分:0)
好吧,我想出了另一种方法来检索电话号码(在我的情况下,这绝对是必须的)。
这是基本的想法。