Android-如何在未存储在SIM卡中的情况下获取手机号码

Android-如何在未存储在SIM卡中的情况下获取手机号码,android,Android,我想获取与SIM卡相关的手机号码。但我知道一些celular运营商没有将号码存储到SIM卡中 所以使用下面的代码不会返回任何内容 TelephonyManager tm = (TelephonyManager)this.getApplicationContext() .getSystemService(Context.TELEPHONY_SERVICE); String phoneNumber = tm.

我想获取与SIM卡相关的手机号码。但我知道一些celular运营商没有将号码存储到SIM卡中


所以使用下面的代码不会返回任何内容

TelephonyManager tm = (TelephonyManager)this.getApplicationContext()
                                            .getSystemService(Context.TELEPHONY_SERVICE); 
String phoneNumber =  tm.getLine1Number();
有人知道用其他方法获得手机号码吗

可能是使用SIM卡的IMSI检索号码的API,也可能是手机号码存储在设备内存的某个位置

一种不顾一切的方法可能是向运营商或运营商提出某种请求,要求他们提供IMSI的手机号码,我不知道:)

任何帮助都将不胜感激:)


谢谢

在这种情况下,我会让用户输入他们的电话号码并将其缓存

评论后编辑
我不是100%确定,但是有没有办法获取“关于电话”设置菜单中存储的电话号码?虽然这可能也会从SIM卡上获取电话号码,如果操作系统本身无法识别,你可能不得不接受不在所有设备上获取电话号码。我的手机号码没有储存在我的SIM卡上,我的“关于手机”菜单也看不到我的手机号码。

我希望没有这样的API,否则我会被一些呼叫中心整天打电话试图出售无用的东西。

“所以使用下面的代码不会返回任何东西”——不仅如此,它可能返回错误的值。例如,我的SIM卡返回一个手机号码,该号码在另一个手机号码被移植到我的帐户之前已经存在了10分钟。@commonware,这是什么意思?你的意思是储存在SIM卡中的电话号码可以更改吗?“你的意思是储存在SIM卡中的电话号码可以更改吗?”--嗯,我当然不能排除这种可能性。在我的情况下,我将一个现有号码转移到我的帐户。SIM卡对此一无所知——一切都由运营商处理。我明白了,但我忘了说这不是一个选项,应用程序必须“收集”一些信息,如IMEI、操作系统、SIM卡序列号、视频分辨率、音频信息等。。。,并将其发送到服务器,而无需“打扰”用户:)我可以获取该应用程序的名称,以便我记下永不安装该应用程序的注意事项吗?PrivacySpy怎么样,或者,更妙的是,我们将您的个人数据提供给任何一个为PrivacySpy付费的人?:)