iOS獲取網(wǎng)絡(luò)類型

我們?cè)陂_發(fā)APP時(shí),涉及網(wǎng)絡(luò)連接的時(shí)候,都會(huì)想著提前判斷一下當(dāng)前的網(wǎng)絡(luò)連接狀態(tài),如果沒(méi)有網(wǎng)絡(luò),就不再請(qǐng)求url,省去不必要的步驟,所以,這個(gè)如何判斷?
記得在工程添加:SystemConfiguration.framework

去蘋果API里搜索Reachability,下載Demo(點(diǎn)擊左上角Download Sample Code 即可下載),把demo里的Reachability.h和Reachability.m拖到自己的工程里。也可以在百度里面搜索”Reachability”,然后下載,不一定非要到蘋果官網(wǎng)去下載。

但是使用Reachability有一個(gè)問(wèn)題,就是它只能判斷當(dāng)前是Wifi或者手機(jī)自帶網(wǎng)絡(luò),沒(méi)有辦法詳細(xì)得判斷2G、3G、4G。
如果確定為手機(jī)自帶網(wǎng)絡(luò),這時(shí)可以使用系統(tǒng)自帶的API來(lái)判斷是2G、3G還是4G,這就要使用到CTTelephonyNetworkInfo這類,記得在工程添加CoreTelephony.framework

1.引入頭文件

//網(wǎng)絡(luò)
#import "Reachability.h"
#import <CoreTelephony/CTCarrier.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>

2.代碼:

- (NSString *)getNetconnType{
    
    NSString *netconnType = @"";
    
    Reachability *reach = [Reachability reachabilityWithHostName:@"www.apple.com"];
    
    switch ([reach currentReachabilityStatus]) {
        case NotReachable:// 沒(méi)有網(wǎng)絡(luò)
        {
            
            netconnType = @"no network";
        }
            break;
            
        case ReachableViaWiFi:// Wifi
        {
            netconnType = @"Wifi";
        }
            break;
            
        case ReachableViaWWAN:// 手機(jī)自帶網(wǎng)絡(luò)
        {
            // 獲取手機(jī)網(wǎng)絡(luò)類型
            CTTelephonyNetworkInfo *info = [[CTTelephonyNetworkInfo alloc] init];
            
            NSString *currentStatus = info.currentRadioAccessTechnology;
            
            if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyGPRS"]) {
                
                netconnType = @"GPRS";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyEdge"]) {
                
                netconnType = @"2.75G EDGE";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyWCDMA"]){
                
                netconnType = @"3G";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyHSDPA"]){
                
                netconnType = @"3.5G HSDPA";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyHSUPA"]){
                
                netconnType = @"3.5G HSUPA";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMA1x"]){
                
                netconnType = @"2G";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMAEVDORev0"]){
                
                netconnType = @"3G";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMAEVDORevA"]){
                
                netconnType = @"3G";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyCDMAEVDORevB"]){
                
                netconnType = @"3G";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyeHRPD"]){
                
                netconnType = @"HRPD";
            }else if ([currentStatus isEqualToString:@"CTRadioAccessTechnologyLTE"]){
                
                netconnType = @"4G";
            }
        }
            break;
            
        default:
            break;
    }
    
    return netconnType;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容