iOS开发之CoreTelephoney框架的应用

简介: iOS开发之CoreTelephoney框架的应用



一、CTTelephonyNetworkInfo类


     这个类是CoreTelephoney框架的核心,使用它来获取手机的运营商、网络等状态信息。使用示例如下:


- (void)viewDidLoad {

   [super viewDidLoad];

   CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];

   //获取运营商信息

   CTCarrier *carrier = info.subscriberCellularProvider;

   NSLog(@"carrier:%@", [carrier description]);

}

运营商信息示例如下:


Carrier name: [中国移动]

Mobile Country Code: [460]

Mobile Network Code:[02]

ISO Country Code:[cn]

Allows VOIP? [YES]

CTTelephonyNetworkInfo类解析如下:


//获取所有运营商信息  iOS 12 后支持

@property(readonly, retain, nullable) NSDictionary<NSString *, CTCarrier *> *serviceSubscriberCellularProviders;

//当前获取运营商信息

@property(readonly, retain, nullable) CTCarrier *subscriberCellularProvider;

//无线网络提供信息

@property (nonatomic, readonly, retain, nullable) NSDictionary<NSString *, NSString *> * serviceCurrentRadioAccessTechnology;

//当前无线网络信息

/*

CTRadioAccessTechnologyGPRS      //2.5g

CTRadioAccessTechnologyEdge      //2.7G

CTRadioAccessTechnologyWCDMA     //3G

CTRadioAccessTechnologyHSDPA     //3.5G

CTRadioAccessTechnologyHSUPA     //3G与4G之间的过度技术

CTRadioAccessTechnologyCDMA1x    //3G

CTRadioAccessTechnologyCDMAEVDORev0  

CTRadioAccessTechnologyCDMAEVDORevA  

CTRadioAccessTechnologyCDMAEVDORevB

CTRadioAccessTechnologyeHRPD  

CTRadioAccessTechnologyLTE       //4G

*/  

@property (nonatomic, readonly, retain, nullable) NSString* currentRadioAccessTechnology;

CTCattier类中定义了运营商相关的信息,解析如下:


//运营商名字

@property (nonatomic, readonly, retain, nullable) NSString *carrierName;

//国家编码

@property (nonatomic, readonly, retain, nullable) NSString *mobileCountryCode;

//网络编码

@property (nonatomic, readonly, retain, nullable) NSString *mobileNetworkCode;

//ISO编码

@property (nonatomic, readonly, retain, nullable) NSString* isoCountryCode;

//是否允许VOIP

@property (nonatomic, readonly, assign) BOOL allowsVOIP;

CTCellularData类用来监听用户的网络状态,可以设置当网络状态发生变化后回调的方法,例如:


cellularData = [[CTCellularData alloc] init];

   // 状态发生变化时调用

cellularData.cellularDataRestrictionDidUpdateNotifier = ^(CTCellularDataRestrictedState restrictedState) {

   switch (restrictedState) {

       case kCTCellularDataRestrictedStateUnknown:

           NSLog(@"蜂窝移动网络状态:未知");

           break;

       case kCTCellularDataRestricted:

           NSLog(@"蜂窝移动网络状态:关闭");

           break;

       case kCTCellularDataNotRestricted:

           NSLog(@"蜂窝移动网络状态:开启");

           break;    

       default:

           break;

   }

};

需要注意,在iOS中使用网络需要获取用户权限,如果用户没有给网络权限,获取到的状态也将是未开启。


二、CTCallCenter


     使用CTCallCenter相关类可以获取当前通话电话的相关信息,CTCallCenter通过管理中心,其中提供了一个方法来获取当前进行中的通话:


//获取当前所有激活中的通话

@property(readonly, retain, nullable) NSSet<CTCall*> *currentCalls;

通话被抽象成CTCall对象,解析如下:


//当前通话状态

/*

CTCallStateDialing  拨号

CTCallStateIncoming 来电

CTCallStateConnected 接通

CTCallStateDisconnected 挂断

*/

@property(nonatomic, readonly, copy) NSString *callState;

//通话ID

@property(nonatomic, readonly, copy) NSString *callID;

目录
相关文章
|
1月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
85 3
|
2月前
|
iOS开发 开发者
苹果iOS App Store上架操作流程详解:从开发者账号到应用发布
很多开发者在开发完iOS APP、进行内测后,下一步就面临上架App Store,不过也有很多同学对APP上架App Store的流程不太了解,下面我们来说一下iOS APP上架App Store的具体流程,如有未涉及到的部分,大家可以及时咨询,共同探讨。
|
4天前
|
存储 编解码 JSON
利用SwiftUI构建高效iOS天气应用
【4月更文挑战第21天】 在本文中,我们将深入探讨如何运用SwiftUI框架打造一个响应迅速且用户友好的iOS天气应用程序。我们将重点放在利用SwiftUI的声明式语法简化界面开发,并通过结合Core Location和Networking APIs实现实时天气数据的获取与展示。文章将详细阐述整个开发过程,包括API集成、数据模型设计、用户界面布局以及动态适配不同屏幕尺寸的策略。
|
7天前
|
API 定位技术 iOS开发
IOS开发基础知识:什么是 Cocoa Touch?它在 iOS 开发中的作用是什么?
【4月更文挑战第18天】**Cocoa Touch** 是iOS和Mac OS X应用的核心框架,包含面向对象库、运行时系统和触摸优化工具。它提供Mac验证的开发模式,强调触控接口和性能,涵盖3D图形、音频、网络及设备访问API,如相机和GPS。是构建高效iOS应用的基础,对开发者至关重要。
11 0
|
22天前
|
开发工具 Swift iOS开发
利用SwiftUI构建动态用户界面:iOS开发新范式
【4月更文挑战第3天】 随着苹果不断推进其软件开发工具的边界,SwiftUI作为一种新兴的编程框架,已经逐渐成为iOS开发者的新宠。不同于传统的UIKit,SwiftUI通过声明式语法和强大的功能组合,为创建动态且响应式的用户界面提供了一种更加简洁高效的方式。本文将深入探讨如何利用SwiftUI技术构建具有高度自定义能力和响应性的用户界面,并展示其在现代iOS应用开发中的优势和潜力。
|
1月前
|
安全 数据安全/隐私保护 虚拟化
iOS应用加固方案解析:ipa加固安全技术全面评测
iOS应用加固方案解析:ipa加固安全技术全面评测
37 3
|
1月前
|
运维 监控 安全
应用研发平台EMAS常见问题之sophix ios flutter热更新如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
77 0
|
1月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
50 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
2月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
196 2
|
2月前
|
Linux Android开发 iOS开发
iOS 应用上架的步骤和工具简介
APP开发助手是一款能够辅助iOS APP上架到App Store的工具,它解决了iOS APP上架流程繁琐且耗时的问题,帮助跨平台APP开发者顺利将应用上架到苹果应用商店。最重要的是,即使没有配置Mac苹果机,也可以使用该工具完成一系列操作,包括iOS证书申请、创建iOS开发者证书和 iOS发布证书等各类证书。此外,在Windows、Linux或Mac系统中上传IPA到App Store也变得简单快捷,从而大大简化了iOS APP上架的流程。