CoreTelephony对CTCarrier的疑问。 我听说我应该在iOS 12中使用serviceSubscriberCellularProviders而不是subscriberCellularProvider,因为不推荐使用subscriberCellularProvider。 所以我写了以下代码。
import UIKit
import CoreTelephony
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let telephony = CTTelephonyNetworkInfo()
if #available(iOS 12.0, *) {
let carrier = telephony.serviceSubscriberCellularProviders
print(carrier)
}
else {
let carrier = telephony.subscriberCellularProvider
print(carrier)
}
}
}
SubscriberCellularProvider成功返回正确的SIM卡信息,但是,serviceSubscriberCellularProviders仅返回零值。
您知道为什么会这样吗?请帮助我
答案 0 :(得分:0)
这是iOS 12.0.x中的错误,并且已在iOS 12.1中修复。
答案 1 :(得分:-1)
我认为这是苹果的错误。试试这个:
CTTelephonyNetworkInfo *networkStatus = [[CTTelephonyNetworkInfo alloc] init];
if (@available(iOS 12.0, *)) {
NSDictionary *info = networkStatus.serviceSubscriberCellularProviders;
NSLog(@"%@", [networkStatus valueForKey:@"serviceSubscriberCellularProvider"]);
}
它在iPhone XS Max(双SIM卡)上可以很好地工作。这似乎是私有方法。