Как обращаться с serviceSubscriberCellularProviders, чтобы получать только данные с физической SIM-карты вместо eSIM? - PullRequest
0 голосов
/ 09 февраля 2019

Хорошо, у меня есть приложение, которое требует считывания данных с SIM-карты.Точнее, мне нужно имя оператора, MCC, MNC, код страны ISO и текущая технология радиодоступа (хорошо, это не происходит напрямую с SIM-карты, но связано).Он отлично работает на каждом телефоне, но я понял (после тестирования), что у меня проблемы с новейшими iPhone, на которых настроен eSIM.Я понятия не имею, как сказать моему приложению, чтобы он считывал данные с физической SIM-карты вместо eSIM.

Я попытался немного поискать в Интернете об этом, но ничего не нашел ...

let telephonyInfo: CTTelephonyNetworkInfo = CTTelephonyNetworkInfo()

carrierNetwork = telephonyInfo.serviceCurrentRadioAccessTechnology?.first?.value ?? "null"
carrierNetwork = carrierNetwork.replacingOccurrences(of: "CTRadioAccessTechnology", with: "", options: NSString.CompareOptions.literal, range: nil)

let carrier = telephonyInfo.serviceSubscriberCellularProviders?.first?.value // actually here originally I tried to use ?.values.first, but the result is the same

let countryCode = carrier?.mobileCountryCode ?? "null"
let mobileNetworkName = carrier?.mobileNetworkCode ?? "null"
let carrierName = carrier?.carrierName ?? "null"
let isoCountrycode = carrier?.isoCountryCode?.uppercased() ?? "null"

/* so the problem is that the values I get are the ones from the eSIM when it is set up. If it is not, then I get the values I want. Apparently, when the physical SIM card line is set as primary, it works. But I need that code to systematically use the physical SIM data. */

Пример:

Я ожидаю [физическая SIM-карта]: имя оператора: бесплатно, MCC: 208, MNC: 15, код страны ISO: fr, CTRadioAccessTechnology: WCDMA.

Но вместо этого я получаю [eSIM]: имя перевозчика: Swisscom, MCC: 228, MNC: 01, код страны ISO: ch, CTRadioAccessTechnology: LTE.

РЕДАКТИРОВАТЬ: Если вызнать, как я могу читать оба, это также хорошо для меня, моя цель состоит в том, чтобы определить, использует ли пользователь бесплатную мобильную [208 15] SIM-карту.

...