如何以编程方式获取有关 iphone 的设备数据提供程序(如 Verizon/AT&T)的详细信息?

How can I get details about the device data provider (like Verizon/AT&T) of an iphone programmatically?

我正在尝试创建一个 ios 应用程序,我想根据用户使用的数据提供商(例如 Verizon 和 AT&T)对用户进行细分。是否可以从 ios 应用程序以编程方式获取此信息。

您将要在 CoreTelephony 框架中使用 CTCarrier carrierNamehttps://developer.apple.com/library/prerelease/ios/documentation/NetworkingInternet/Reference/CTCarrier/index.html#//apple_ref/occ/instp/CTCarrier/carrierName

你应该检查 CTCarrier

只需将 CoreTelephony 导入您的 Swift 文件。

然后您可以使用 carrierName 属性 获取您的运营商名称。

// Setup the Network Info and create a CTCarrier object
let networkInfo = CTTelephonyNetworkInfo()
let carrier = networkInfo.subscriberCellularProvider

// Get carrier name
let carrierName = carrier.carrierName

现在您可以拥有多张 SIM 卡,subscriberCellularProvider 已被弃用,取而代之的是 serviceSubscriberCellularProviders。您可以通过以下方式获得一组提供者:

CTTelephonyNetworkInfo().serviceSubscriberCellularProviders?.values

在我的例子中,我正在检查用户是否有美国 phone 号码,以便他们可以文本支持而不是电子邮件。你可以这样做:

carriers.contains { [=11=].isoCountryCode?.lowercased() == "us" }

在我的 phone 上,我只有一张 SIM 卡,但是这个数组 returns 有两个值,其中一个具有所有 nil 属性,所以如果您正在检查它们,请务必处理它。