iOS 当前网络类型判断(2G/3G/4G/5G)_new_dev的博客-程序员秘密

技术标签: 网络类型  5G  网络  iOS_dev  当前ssid  

 

    由于一直在做IOT方面的工作,所以app跟硬件设备之间的交互就做的特别多,自然而然的手机当前连接的ssid是什么类型的就尤为重要,之前在判断网络的发现发现xcode12竟然没有5G相关的key,最近升级到Xcode12.1发现多了CTRadioAccessTechnologyNRNSACTRadioAccessTechnologyNR。从而是的判断当前网络连接类型变得更完善。

NRNew Radio的缩写,新无线(5G)的意思,
NRNSA表示5G NR的非独立组网(NSA)模式。

需要导入头文件:

#import <CoreTelephony/CTTelephonyNetworkInfo.h>
+ (NSString *)getNetType
{
    CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
    NSString *currentStatus = info.currentRadioAccessTechnology;
    NSString *currentNet = @"5G";
    
    if ([currentStatus isEqualToString:CTRadioAccessTechnologyGPRS]) {
        currentNet = @"GPRS";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyEdge]) {
        currentNet = @"2.75G EDGE";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyWCDMA]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyHSDPA]){
        currentNet = @"3.5G HSDPA";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyHSUPA]){
        currentNet = @"3.5G HSUPA";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMA1x]){
        currentNet = @"2G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMAEVDORev0]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMAEVDORevA]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyCDMAEVDORevB]){
        currentNet = @"3G";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyeHRPD]){
        currentNet = @"HRPD";
    }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyLTE]){
        currentNet = @"4G";
    }else if (@available(iOS 14.0, *)) {
        if ([currentStatus isEqualToString:CTRadioAccessTechnologyNRNSA]){
            currentNet = @"5G NSA";
        }else if ([currentStatus isEqualToString:CTRadioAccessTechnologyNR]){
            currentNet = @"5G";
        }
    }
    return currentNet;
}

    有网友说,这个API是从14.1起步,而在iOS14.0.1会导致崩溃,由于手头目前没有这个系统的设备,所以不能来验证了,如果有问题,欢迎提出。

 


 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u012094456/article/details/111831948

智能推荐

猴子选大王(约瑟夫环问题)_NGUP_LEE的博客-程序员秘密

题目描述n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。输入输入两个整数n和m,1&lt;=m&lt;=n&lt;=100。输出输出猴王的编号样例输入8 3样例输出7代码:#include&lt;stdio.h&gt;#include...

java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)错误原因_着力的博客-程序员秘密

java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)错误原因 解决方案:用户对应的密码不正确检查输入的用户名 密码 与数据库用户名 密码 是否一致这里密码不正确有几种常见情况:(1)连接池多个空格(2)mysql5.7后mysql系统表user里密码对应的字段不是password是authentication_string字段命令行依次输入:mysqluse mysq

RS-485总线,这篇很详细_芯片之家的博客-程序员秘密

485通信自动收发电路 历史上最详细的解释(点击阅读)5种RS485切换方向的方法及优劣势分析(点击阅读)[导读] 大家好,我是逸珺,前面一篇文章总结了一下工业HART总线,今天来聊聊R...

更好的质量检查:从单元测试标准中学习_danpu0978的博客-程序员秘密

“单元测试”是一件棘手的事情。 我很确定测试人员在某个时候会抱怨开发人员没有正确地进行单元测试,并且交付的质量很差。 另一方面,开发人员发现很难创建和维护单元测试用例以及维护系统的敏捷性。 无论如何,毫无疑问,单元测试是SDLC的关键部分,也是迈向测试的第一步。 在这里,我将讨论更多的单元测试标准,我们可以在测试和自动化中加以利用,以使其更加有效。 什么是单元测试? 单元测试是一...

我的第二次找工作之旅_阿曌的博客-程序员秘密

去年7月份的时候想转iOS,那时候刚刚学习iOS不久的我急于求成,刚学完高级控件就敢去应聘iOS开发,结果闹了很多笑话。经过半年的沉淀,在年后我又一次开始找工作之旅,记录一下。腾讯科技去TX一直是我的梦想,7月份的时候就找前同事内推过,但是当时水平太低,没能通过一面,自那时候起,我便将自己电脑的开机密码改为了w1dyjtx!(我一定要进腾讯!)以此每日激励自己勤奋努力。经过了半年,自己的博客和Git

随便推点

使用featureCounts进行定量分析_生信修炼手册的博客-程序员秘密

欢迎关注”生信修炼手册”!featuresCounts软件用于统计基因/转录本上mapping的reads数,也就是用于raw count定量。该软件不仅支持基因/转录本的定量,也支持e...

Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能_weixin_30388677的博客-程序员秘密

2019.6.27更新再更新个windows版本的搭建方法,链接在这里,附上我上传的下载包地址,免得有一天把链接取消了,最新版本的包含nginx-rtmp-module已经开始收费了。2019.6.26更新虽然叫rtmp-module,但是这个插件也支持hls协议,在配置文件nginx.conf的rtmp块中再添加一个配置,如下:application hls { ...

项目管理实践【五】自动编译和发布网站_longxin5的博客-程序员秘密

  转自:http://www.cnblogs.com/ttzhang/archive/2008/11/10/1330321.html   在上一篇教程项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】 中,我们讲解了如何使用CCNET+MSBuild来自动编译项目,今天我们讲解一下怎么使用MSBui...

Slf4j error方法如何打印格式化字符串 异常堆栈信息_slf4j log.error_xdlkc的博客-程序员秘密

需求:打印error时,既想打印带参数的字符串,也想打印异常堆栈信息Answer:只需调用log.error格式化字符串,并且把堆栈信息参数e放到最后一个即可@Slf4jpublic class LogTest { @Test public void testLog() { String s = "Hello world"; try { ...

电子书下载网站汇总_book4you_韩韩的博客的博客-程序员秘密

网站名称地址简介语言推荐指数备注Book4Uhttp://www.book4you.sk/外文下载网站斯洛伐克语BookYardshttps://www.bookyards.com/en/welcome主要面向教师的门户网站,其中的书籍,教育材料,信息和内容都是免费提供,以教辅资料最多。英语★★★搬书匠http://www.banshujiang.cn/主要提供编程类书籍的下载中文★★★Z-Libraryhttps://z-...

Http请求中Content-Type讲解以及在Spring MVC中的应用_喵学长的博客-程序员秘密

引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在spring MVC中如何使用它们来映射请求信息。1.  Content-Type  MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型

推荐文章

热门文章

相关标签