我正在尝试使用以下代码获取用户运营商名称:
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;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试记录时,结果是这样的:
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
Run Code Online (Sandbox Code Playgroud)
基本上我已经尝试了每个堆栈溢出答案,但我仍然得到相同的结果,
我在我的iPhone上调试这个,没有使用WiFi,而且我只使用物理SIM卡,而不是电子SIM卡。
谁能告诉我为什么我总是收到“--”?
在我浏览了一下之后,国家代码“65535”这可能表明 SIM 卡已被移除,或者通常目前无法拨打电话。
谁能帮我?为什么会发生这种情况以及如何获得正确的蜂窝提供商名称?
我什至尝试使用以下代码在我的新空白项目中执行此操作:
override func viewDidLoad() {
super.viewDidLoad()
let networkInfo = CTTelephonyNetworkInfo()
let carrierName = networkInfo.serviceSubscriberCellularProviders
dump(carrierName)
}
Run Code Online (Sandbox Code Playgroud)
但我的日志中仍然得到相同的结果:
Optional(["0000000100000001": CTCarrier (0x281275d10) {
Carrier name: [--]
Mobile Country …Run Code Online (Sandbox Code Playgroud)