【发布时间】:2011-11-09 12:13:47
【问题描述】:
如何在 J2ME 应用程序中获取电话号码(不是联系电话等)?手机中属于sim卡的电话号码。
【问题讨论】:
标签: java-me phone-number
如何在 J2ME 应用程序中获取电话号码(不是联系电话等)?手机中属于sim卡的电话号码。
【问题讨论】:
标签: java-me phone-number
手机中属于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
如果您对细节感兴趣,上面的描述很好in this article
如果您想了解有关此唯一 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
因为这样便宜得多。再想想 SIM 卡丢失/损坏的情况。发生什么了?你来到办公室,办公桌上的人给你新的 SIM 卡,并在数据库中添加一条记录,告诉你 SIM id 现在绑定到你的旧电话号码。这既简单又便宜。
如果他们必须将您的电话号码存储在 SIM 卡上,他们将不得不以某种方式将其记录在那里并测试添加的记录是否按预期工作。那是额外的工作——而且,他们会从中得到什么?什么都没有。
【讨论】: