-1

我正在为Android(2.1+)编写一个应用程序,我想使用当前手机的电话号码。大量的谷歌搜索给我带来了以下信息:

String number=(TelephonyManager)getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE).getLine1Number();

连同许可:READ_PHONE_STATE。

然而,我的问题是它返回 null。在搜索时,我注意到这个问题之前已经被问过很多次,而且几乎在所有这些问题中都说这个数字并不总是可用的。

在测试时,我发现在我自己的手机上它给了我 null。但是另一个应用程序(例如WhatsApp)能够识别我的电话号码)。

所以我想知道,他们是怎么做到的?

4

2 回答 2

3

您可以查看本教程以了解如何以编程方式获取自己的手机号码

请阅读我在教程下面写的所有信息

正如我所读到的,到目前为止,有些人对输出的不同行为存在冲突。有报道称,某些 SIM 卡会导致此方法返回 null。

因为这个问题没有保证的解决方案,因为电话号码没有物理存储在所有 SIM 卡上,也没有从网络广播到电话。在一些需要物理地址验证的国家尤其如此,之后才进行号码分配。

于 2012-06-06T14:30:09.417 回答
0

好吧,我想出了另一种方法来检索电话号码(在我的情况下,这确实是绝对必须的)。

  1. 该应用程序必须连接到服务器。
  2. 服务器给应用程序一个唯一的 id 和一个电话号码。
  3. 该应用程序向具有唯一 ID 的电话号码发送一条短信。
  4. 服务器(我是否提到过 SMS 网关应该允许您解释短信?)将看到发送短信的号码和属于应用程序的 ID。这存储在数据库中。
  5. 现在,您将可以使用标识符检索号码。

这是基本的想法。

于 2012-06-07T06:36:54.133 回答