У меня есть некоторое понимание этого вопроса для вас.
- ЕЦСОПС может быть сохранены на SIM-карте, однако большинство сетевых провайдеров (все провайдеры в Южной Африке), не храните MSISDN на SIM-карте. Существует несколько причин для этого, наиболее заметным из которых является:
- Динамическое распределение MSISDN: предварительно оплаченные SIM-карты когда-то выделяют MSISDN при их первом использовании. Это означает, что сеть имеет пул доступных MSISDN и распределяет их всякий раз, когда появляется новая предоплаченная SIM-карта. Это означает, что при отправке SIM-карт у них еще нет MSISDN, что означает, что вы не можете хранить MSISDN до отправки SIM-карт. Некоторые сети «истекают» выделения MSISDN после периода бездействия, особенно когда их доступные номера работают на низком уровне, и возвращают эти числа в доступный пул.
- Переносимость мобильного номера: в некоторых странах мобильные абоненты могут сохранять свои MSISDN, но изменять сети. Это означает, что MSISDN будет перемещен с SIM-карты, которая предназначена для 1 сети для SIM-карты, которая предназначена для другой сети.
Таким образом, пользователь часто заканчивается с приходом MSISDN на SIM-быть пустым. Пользователь все еще может хранить MSISDN на самой SIM-карте, но это также позволяет им хранить любое произвольное число, и не гарантируется, что он будет установлен или даже будет фактическим номером телефона абонентов.
2. Те вызовы, которые вы просили, получить номер, который хранится на SIM-карте. Если номер не установлен, вы не получите его, и если у пользователя установлен неправильный номер, вы получите неправильные данные.
3. Правильно, эта строка извлекается из самой SIM-карты.
Единственный полунадежный способ, которым я располагаю для обнаружения MSISDN, - это WAP/WEB, когда Mobile Operator включает MSISDN в заголовках (вы можете сделать некоторые трюки в веб-просмотре, чтобы увидеть, какие заголовки идут) - однако вы видите только если сеть поддерживает его, и если пользователь находится на мобильных данных - т. е. он не будет работать, если пользователь подключен к WiFi.
Другой механизм, о котором я могу думать (единственный гарантированный механизм, о котором я могу думать), - это сеанс USSD, поскольку вы всегда получаете правильное MSISDN от оператора, но я не нашел способ программного открытия USSD и чтение ответа (по крайней мере, в Android). У меня есть служба USSD, единственным выходом которой является MSISDN, но, к сожалению, это еще не доказано для меня.
Большое вам спасибо, darryn.ten. Я считаю, что многие люди получат так много преимуществ от вашего ответа. И я попытаюсь получить MSISDN через заголовки в режиме GPRS. –