CoreTelephony - carrierName в режиме полета - PullRequest
0 голосов
/ 29 октября 2018

У меня есть следующий код для получения имени оператора моего поставщика услуг:

let ctTelePhony = CTTelephonyNetworkInfo()

func cellPhoneServices() -> String {
    let serviceProvider = ctTelePhony.subscriberCellularProvider
    if let carrierName = serviceProvider?.carrierName {
        globalCarrierName = carrierName
        return carrierName}
    else {
        globalCarrierName = "Nil"
        return "Nil"}
}

Согласно документации, subscriberCellular Поставщик устарел и заменен на serviceSubscriberCellularProviders, однако при использовании этой службы он возвращает ноль.

Основной вопрос: когда я использую код, указанный выше, я получаю имя перевозчика, но когда я переключаюсь в режим полета, я все равно получаю имя своего перевозчика.

Информация о перевозчике хранится локально на телефоне? При использовании услуги *3001#12345#* вся информация не отображается в режиме полета.

1 Ответ

0 голосов
/ 29 октября 2018
@property(nonatomic, readonly, retain) NSString *carrierName;

Если мы настроим устройство для оператора связи, переведем устройство в режим полета, даже если SIM-карта удалена, устройство вернет устройство. Информация о носителе может быть надежно сохранена где-то внутри устройства.

Эта строка предоставляется перевозчиком и отформатирована для представления пользователю. Значение не изменяется, если пользователь находится в роуминге; Это всегда представляет провайдера, с которым у пользователя есть аккаунт.

Если вы настраиваете устройство для оператора, а затем извлекаете SIM-карту, это свойство сохраняет имя оператора.

Значение этого свойства равно nil, если устройство никогда не было настроено для перевозчика.

...