MSISDN:它是SIM卡数据吗?为什么所有提供的功能(来自Blackberry和Android)

MSISDN:它是SIM卡数据吗?为什么所有提供的功能(来自Blackberry和Android)获取MSISDN不可靠?

我有几个关于MSISDN的问题。我明白:

  1. MSISDN基本上就是电话号码

  2. 它不是IMSI

我需要进一步了解的是:

  1. MSISDN号码是否在SIM卡中烧毁(存储)?如果是,是否所有提供商都确保SIM卡中有MSISDN信息?如果不是,需要澄清的是,没有编程代码可以获取MSISDN号码?

  2. 有些人建议按以下代码获取MSISDN。但如果未在设备中设置“我的电话号码”,则两个代码都返回null。反过来,如果设置了它,它将返回“我的电话号码”。因此,问题是:“我的电话号码”等于MSISDN?

    TelephonyManager.getLine1Number(); - >适用于Android

    Phone.getDevicePhoneNumber(true); - >黑莓手机

  3. 如上面的代码,返回String数据是从设备本身还是从SIM卡中获取的?


回首忆惘然
浏览 1510回答 3
3回答

月关宝盒

我对你有所了解。MSISDN 可以存储在SIM卡上,但是大多数网络提供商(南非的所有提供商)都不会将MSISDN存储在SIM卡上。这有几个原因,最值得注意的是:动态MSISDN分配:首次使用预付费SIM时,有时会为其分配MSISDN。这意味着网络具有可用的MSISDN池,并在新的预付费SIM上线时分配它们。这意味着当SIM卡出厂时,它们还没有MSISDN,这意味着在发送SIM卡之前无法存储MSISDN。有些网络在一段时间不活动后会过期'MSISDN分配,特别是当它们的可用数量不足时,并将这些数字返回到可用池。移动号码可携带性:一些国家/地区允许移动用户保留其MSISDN但更改网络。这意味着MSISDN将从用于1个网络的SIM移动到用于另一个网络的SIM。因此,用户通常最终将SIM上的MSISDN条目留空。用户仍然可以在SIM卡上存储MSISDN,但这也允许它们存储任意数字,并且不保证设置或甚至不是订户的实际电话号码。   2.您询问的有关获取存储在SIM卡中的号码的电话。如果未设置该号码,您将无法获得该号码,如果用户设置了错误的号码,则您将获得不正确的详细信息。   3.正确,此字符串是从SIM本身获取的。我检测MSISDN的唯一半可靠方式是通过WAP / WEB,当移动运营商在标题中包含MSISDN时(你可以做一些webview技巧来查看标题是通过的) - 但是你只看到这些如果是网络支持它,如果用户在移动数据上 - 即如果用户使用WiFi,它将无法工作。我能想到的另一种机制(我能想到的唯一保证机制)是通过USSD会话,因为你总是从运营商那里得到正确的MSISDN,但我还没有找到一种以编程方式打开USSD会话和阅读的方法。响应(至少在Android中)。我有一个USSD服务,其唯一的输出是MSISDN,但不幸的是,这还没有证明对我有用。

长风秋雁

您应该考虑到MSISDN具有BIGINT类型。因此,输出它会提前进行类型转换,就像这样
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android