我有以下代码来获取服务提供商的运营商名称:
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#*
服务时,如果处于飞行模式,则不会显示所有信息。
答案 0 :(得分:0)
@property(nonatomic, readonly, retain) NSString *carrierName;
如果我们将设备配置为运营商,则将设备置于飞行模式,即使SIM卡被卸下,设备仍会返回运营商。运营商信息可能会安全地保存在设备内部。
此字符串由运营商提供,并已格式化以进行展示 给用户。如果用户正在漫游,则该值不会更改;它 始终代表用户拥有其帐户的提供商。
如果为运营商配置设备,然后卸下SIM卡,则此属性将保留运营商的名称。
如果从未配置设备,则此属性的值为nil 承运人。