尝试获取运营商名称时,收到“--”。

5
我正在尝试使用以下代码获取用户运营商名称:
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中获取运营商名称不可能吗?


1
你有找到解决方案吗?运营商的国家代码你能获取到吗?我也遇到了同样的问题。 - Kodr.F
1个回答

1

啊,好的,非常感谢你的回答,我可以拿这个来向我的主管解释。谢谢! - afi permana
@afipermana 你能把这个答案标记为已接受吗? - Keith Smiley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接