我想得到用户的当前国家,而不询问位置。所以我想使用CTCarrier类属性isoCountryCode。为了访问CTCarrier,我使用serviceSubscriberCellularProviders,它返回“包含每个服务的载体信息的字典”。https://developer.apple.com/documentation/coretelephony/cttelephonynetworkinfo/3024511-servicesubscribercellularprovide。
现在,当我查询serviceSubscriberCellularProviders时,它返回两个对象-- nil,以及大概是我的家庭蜂窝服务提供商。
let networkInfo = CTTelephonyNetworkInfo()
let dictionary = networkInfo.serviceSubscriberCellularProviders;
for (type, value) in dictionary ?? [:] {
let country:String? = value.isoCountryCode == nil ? "nil" : value.isoCountryCode;
print("serviceSubscriberCellularProviders: "+country!)
}如果我在国外,并连接到漫游服务提供商,我还会得到两个对象--国内和现在而不是nil -漫游服务提供商吗?而在漫游服务提供商属性中,isoCountryCode会返回漫游服务提供者的实际国家吗?
这些文件让我很困惑..。对于家庭蜂窝服务提供商来说,isoCountryCode到底是什么?假设我住在法国,我的服务提供商当然来自法国-- isoCountryCode将返回"FR“。现在,如果我去德国度假,isoCountryCode现在会回来什么?仍然相同的"FR“或"DE”
发布于 2022-03-29 10:07:09
如文件所述:
Note
在这种情况下,“home”提供程序是用户有蜂窝计划的提供者,而不是漫游提供者。
因此,您将始终得到FR,即使是在漫游,如果您的家庭供应商是在法国。
之所以有两个可能的值,是因为iPhones现在最多支持两个sims;一个是物理的,一个是reason,所以手机上可能有两个不同的手机提供商。
https://stackoverflow.com/questions/71659968
复制相似问题