gna*_*nat 32
电话号码属于手机中的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)
因为这样便宜得多.再想一想SIM卡丢失/损坏的情况.怎么了?你到办公室,桌子上的人给你新的SIM卡,并在数据库中添加一条记录,告诉你SIM卡现在已经绑定了你的旧电话号码.那简单又便宜.
如果他们必须将您的电话号码存储在SIM卡上,他们必须以某种方式将其记录在那里并测试添加的记录是否按预期工作.这是额外的工作 - 而且,他们会从中获得什么?没有.
不是这样:以编程方式在iOS中获取自己的电话号码