[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

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Python实现自动化接收与处理手机验证码

《Python实现自动化接收与处理手机验证码》在移动互联网时代,短信验证码已成为身份验证、账号注册等环节的重要安全手段,本文将介绍如何利用Python实现验证码的自动接收,识别与转发,需要的可以参考下... 目录引言一、准备工作1.1 硬件与软件需求1.2 环境配置二、核心功能实现2.1 短信监听与获取2.

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解