如何在J2ME中获取电话号码?

use*_*117 13 phone-number java-me

如何获取J2ME应用程序中的电话号码(不是联系号码等)?属于手机中SIM卡的电话号码.

gna*_*nat 32

电话号码属于手机中的SIM卡...

以上假设是错误的.

SIM卡不存储您的电话号码

SIM卡仅存储与您的电话号码无关的唯一标识符.

移动与网络交互的方式大致如下:

- [phone] hello network, ID on my SIM is 12345
- [network] hello 12345, I recognized you as a sim card
            currently bound to phone number 987-654-321
Run Code Online (Sandbox Code Playgroud)

如果您对细节感兴趣,请在本文中详细介绍以上内容

如果您想了解有关此唯一ID的更多信息,请在网上搜索术语国际移动订户身份(IMSI).如果您想从Java ME访问此数据,您很可能需要支持JSR 177 SATSA的电话,您需要了解APDU的工作原理.但这无助于您获取电话号码.

但是......为什么呢?

你的意思是,为什么他们使用一些唯一的标识符代替电话号码?这很简单.只要想一想当你松开或破坏你的SIM卡时会发生什么,或者更好的是当有人偷走它时.

你想要新的SIM卡,但是你想要以前的号码吗?很好 - 你去办公室,他们给你新的SIM卡,并将其绑定到您的旧号码.现在,之后如何运作,

- [stolen phone] hello network, ID on my SIM is 12345
- [network] hello 12345, I recognized you as invalid sim card
            so I will ignore you
- [your new phone] hello network, ID on my SIM is 23456
- [network] hello 23456, I recognized you as a sim card
            currently bound to phone number 987-654-321
Run Code Online (Sandbox Code Playgroud)

好的但是为什么哦为什么他们不存储IMSI和电话号码?

因为这样便宜得多.再想一想SIM卡丢失/损坏的情况.怎么了?你到办公室,桌子上的人给你新的SIM卡,并在数据库中添加一条记录,告诉你SIM卡现在已经绑定了你的旧电话号码.那简单又便宜.

如果他们必须将您的电话号码存储在SIM卡上,他们必须以某种方式将其记录在那里并测试添加的记录是否按预期工作.这是额外的工作 - 而且,他们会从中获得什么?没有.

但是......但这似乎在某种程度上可以用iPhone实现不是吗?

不是这样:以编程方式在iOS中获取自己的电话号码

  • @ user818117 _handshake mobile with operator_我明白了.为什么不.然而,这将是一个完全不同的问题.它肯定与_"电话号码属于手机中的SIM卡"无关_因为如你所见,没有这样的事情 (2认同)