CoreTelephony-处于飞行模式时的carrierName

时间:2018-10-29 14:03:16

标签: ios swift core-telephony

我有以下代码来获取服务提供商的运营商名称:

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代替,但是在使用该服务时,它返回nil。

主要问题是:当我使用上面的代码时,将获得承运人的名称,但是当我切换到飞行模式时,仍会获得承运人的名称。

运营商信息是否在手机上本地存储?使用*3001#12345#*服务时,如果处于飞行模式,则不会显示所有信息。

1 个答案:

答案 0 :(得分:0)

@property(nonatomic, readonly, retain) NSString *carrierName;

如果我们将设备配置为运营商,则将设备置于飞行模式,即使SIM卡被卸下,设备仍会返回运营商。运营商信息可能会安全地保存在设备内部。

  

此字符串由运营商提供,并已格式化以进行展示   给用户。如果用户正在漫游,则该值不会更改;它   始终代表用户拥有其帐户的提供商。

     

如果为运营商配置设备,然后卸下SIM卡,则此属性将保留运营商的名称。

     

如果从未配置设备,则此属性的值为nil   承运人。