Как получить номер телефона в J2ME? - PullRequest
13 голосов
/ 03 сентября 2011

Как получить номер телефона (не контактные и т. Д.) В приложении J2ME? Номер телефона, который принадлежит сим-карте в телефоне.

1 Ответ

31 голосов
/ 03 сентября 2011

номер телефона, который принадлежит сим-карте в телефоне ...

Выше предположение неверно.

на сим-карте не хранится ваш номер телефона

На 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

Если вас интересуют подробности, выше хорошо описано в этой статье

Если вы хотите узнать больше об этом уникальном идентификаторе, поищите в Интернете термин Международный идентификатор мобильного абонента (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

хорошо, хорошо, но почему бы не сохранить IMSI и номер телефона?

Потому что так намного дешевле. Подумайте еще раз о случае потери / поломки SIM-карты. Что просходит? Вы приходите в офис, парень за столом дает вам новую SIM-карту и добавляет в базу данных запись о том, что идентификатор SIM теперь привязан к вашему старому номеру телефона. Это просто и дешево.

Если бы им пришлось хранить ваш номер телефона на SIM-карте, им пришлось бы как-то записать его там и проверить, работает ли добавленная запись, как ожидалось. Это дополнительная работа - и что они получат от этого? Ничего.

но ... но это кажется каким-то выполнимым с iPhone, не так ли?

Не совсем так: Программно получить свой номер телефона в iOS

...