首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心电话CTCarrier和isoCountryCode。如何获得用户当前蜂窝提供商的国家?

核心电话CTCarrier和isoCountryCode。如何获得用户当前蜂窝提供商的国家?
EN

Stack Overflow用户
提问于 2022-03-29 09:58:34
回答 1查看 324关注 0票数 0

我想得到用户的当前国家,而不询问位置。所以我想使用CTCarrier类属性isoCountryCode。为了访问CTCarrier,我使用serviceSubscriberCellularProviders,它返回“包含每个服务的载体信息的字典”。https://developer.apple.com/documentation/coretelephony/cttelephonynetworkinfo/3024511-servicesubscribercellularprovide

现在,当我查询serviceSubscriberCellularProviders时,它返回两个对象-- nil,以及大概是我的家庭蜂窝服务提供商。

代码语言:javascript
复制
          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”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-29 10:07:09

如文件所述:

Note

在这种情况下,“home”提供程序是用户有蜂窝计划的提供者,而不是漫游提供者。

因此,您将始终得到FR,即使是在漫游,如果您的家庭供应商是在法国。

之所以有两个可能的值,是因为iPhones现在最多支持两个sims;一个是物理的,一个是reason,所以手机上可能有两个不同的手机提供商。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71659968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档