[Swift]获取手机SIM卡网络运营商名称

2024-08-20 22:38

本文主要是介绍[Swift]获取手机SIM卡网络运营商名称,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导入框架

import CoreTelephony

获取当前运营商名称

/// 获取手机SIM卡网络运营商名称
func currentCarrierName() -> String? {var tempName: String?let info = CTTelephonyNetworkInfo()if #available(iOS 12.0, *) {if let carrierProviders = info.serviceSubscriberCellularProviders {for item in carrierProviders.values {if item.mobileNetworkCode != nil {tempName = item.carrierName}}}} else {if let carrier: CTCarrier = info.subscriberCellularProvider {tempName = carrier.carrierName}}return tempName
}

判断是国内哪家运营商

/// 获取当前手机SIM卡网络运营商名称
func chinaCarrierName() -> String? {var mcc = ""var mnc = ""let info = CTTelephonyNetworkInfo()if #available(iOS 12.0, *) {if let carrierProviders = info.serviceSubscriberCellularProviders {for item in carrierProviders.values {if item.mobileNetworkCode != nil {mcc = item.mobileCountryCode ?? ""mnc = item.mobileNetworkCode ?? ""break}}}} else {if let carrier: CTCarrier = info.subscriberCellularProvider {mcc = carrier.mobileCountryCode ?? ""mnc = carrier.mobileNetworkCode ?? ""}}guard mcc == "460" else { return nil }var tempCarrier: String?if mnc == "00" || mnc == "02" || mnc == "04" || mnc == "07" || mnc == "08" || mnc == "" || mnc == "" {tempCarrier = "mobile"} else if mnc == "01" || mnc == "06" || mnc == "09" {tempCarrier = "unicom"} else if mnc == "03" || mnc == "05" || mnc == "11" {tempCarrier = "telecom"} else if mnc == "15" {tempCarrier = "broadnet"} else if mnc == "20" {tempCarrier = "tietong"}return tempCarrier
}

carrierArr打印结果

Printing description of carrierArr:
▿ 1 element▿ 0 : 2 elements- key : "0000000100000001"- value : CTCarrier (0x28112d9b0) {Carrier name: [中国联通]Mobile Country Code: [460]Mobile Network Code:[01]ISO Country Code:[cn]Allows VOIP? [YES]
}

CTCarrier对象

/**  CTCarrier.h*  CoreTelephony**  Copyright 2009 Apple, Inc.. All rights reserved.**/@available(iOS, introduced: 4.0, deprecated: 16.0, message: "Deprecated with no replacement")
open class CTCarrier : NSObject {/** carrierName** Discussion:*   An NSString containing the name of the subscriber's cellular service provider.*/@available(iOS, introduced: 4.0, deprecated: 16.0, message: "Deprecated; returns '--' at some point in the future")open var carrierName: String? { get }/** mobileCountryCode** Discussion:*   An NSString containing the mobile country code for the subscriber's *   cellular service provider, in its numeric representation*/@available(iOS, introduced: 4.0, deprecated: 16.0, message: "Deprecated; returns '65535' at some point in the future")open var mobileCountryCode: String? { get }/** mobileNetworkCode** Discussion:*   An NSString containing the  mobile network code for the subscriber's *   cellular service provider, in its numeric representation*/@available(iOS, introduced: 4.0, deprecated: 16.0, message: "Deprecated; returns '65535' at some point in the future")open var mobileNetworkCode: String? { get }/** isoCountryCode** Discussion:*   Returns an NSString object that contains country code for*   the subscriber's cellular service provider, represented as an ISO 3166-1*   country code string*/@available(iOS, introduced: 4.0, deprecated: 16.0, message: "Deprecated; returns '--' at some point in the future")open var isoCountryCode: String? { get }/** allowsVOIP** Discussion:*   A BOOL value that is YES if this carrier allows VOIP calls to be*   made on its network, NO otherwise.*/@available(iOS, introduced: 4.0, deprecated: 16.0, message: "Deprecated; returns YES at some point in the future")open var allowsVOIP: Bool { get }
}

这篇关于[Swift]获取手机SIM卡网络运营商名称的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091372

相关文章

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

C#实现WinForm控件焦点的获取与失去

《C#实现WinForm控件焦点的获取与失去》在一个数据输入表单中,当用户从一个文本框切换到另一个文本框时,需要准确地判断焦点的转移,以便进行数据验证、提示信息显示等操作,本文将探讨Winform控件... 目录前言获取焦点改变TabIndex属性值调用Focus方法失去焦点总结最后前言在一个数据输入表单

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

python中os.stat().st_size、os.path.getsize()获取文件大小

《python中os.stat().st_size、os.path.getsize()获取文件大小》本文介绍了使用os.stat()和os.path.getsize()函数获取文件大小,文中通过示例代... 目录一、os.stat().st_size二、os.path.getsize()三、函数封装一、os

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor