我正在尝试使用以下代码获取用户运营商名称:
CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier* carrier = info.subscriberCellularProvider;
NSString *mobileCountryCode = carrier.mobileCountryCode;
NSString *carrierName = carrier.carrierName;
NSString *isoCountryCode = carrier.isoCountryCode;
NSString *mobileNetworkCode = carrier.mobileNetworkCode;
但是当我尝试登陆时,结果是这样的:
2023-05-22 16:47:39.831078+0700 MotionTrade[7686:985518] carrier name = --
2023-05-22 16:47:39.831260+0700 MotionTrade[7686:985518] mobileCountryCode = 65535
2023-05-22 16:47:39.831342+0700 MotionTrade[7686:985518] mobileNetworkCode = 65535
我基本上已经尝试了每一个 Stack Overflow 的答案,但是我仍然得到了相同的结果。
我在我的 iPhone 上进行了调试,并且没有使用 WiFi,而且我只使用物理 sim 卡,而不是 e-sim。
有人能告诉我为什么我一直得到“--”吗?
我浏览了一下,发现国家代码“65535”可能意味着 sim 卡已被移除,或者一般情况下暂时无法拨打电话。
有人能帮忙吗?为什么会出现这种情况,如何获取正确的移动运营商名称?
我甚至尝试了在我的新空白项目中使用以下代码:
override func viewDidLoad() {
super.viewDidLoad()
let networkInfo = CTTelephonyNetworkInfo()
let carrierName = networkInfo.serviceSubscriberCellularProviders
dump(carrierName)
}
但是我的日志中仍然得到了相同的结果:
Optional(["0000000100000001": CTCarrier (0x281275d10) {
Carrier name: [--]
Mobile Country Code: [65535]
Mobile Network Code:[65535]
ISO Country Code:[--]
Allows VOIP? [YES]
}
, "0000000100000002": CTCarrier (0x28126ca20) {
Carrier name: [--]
Mobile Country Code: [65535]
Mobile Network Code:[65535]
ISO Country Code:[--]
Allows VOIP? [YES]
}
] )
请帮我。为什么我一直得到"--"和65535?有没有办法获得运营商名称?或者在iOS 16中获取运营商名称不可能吗?