номер телефона, который принадлежит сим-карте в телефоне ...
Выше предположение неверно.
на сим-карте не хранится ваш номер телефона
На 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