iOS網路監測區分2 3 4G

2021-09-11 12:42:32 字數 2031 閱讀 5588

文章也會同步更新到我的部落格:

ppsheep.com

如果有在使用afnetworking朋友知道,在af裡只能區分當前網路是wifi網路還是蜂窩網路在3g、4g出現以後,我們就有乙個新需求,需要區分2g、3g、4g網路了,雖然同為蜂窩網路但是速度可是千差萬別,有時我們會感覺到4g比wifi還快,當然流量也是跑的相當肉痛

下面我們就來講一講怎麼區分2g 3g 4g網路

在這個工程裡有我們需要用到的 蘋果官方提供的實時監測網路的類 我們是在這個基礎上 稍作修改就可以做到

進入網頁 1

在示例**中 將reachability類拷貝到我們的專案當中2

首先修改reachability類中的網路型別列舉:

typedef enum : nsinteger  networkstatus;複製**
然後再.m檔案中 找到方法

- (networkstatus)networkstatusforflags:(scnetworkreachabilityflags)flags;複製**
增加判斷2g 3g 4g的方法

在 if ((flags & kscnetworkreachabilityflagsiswwan) == kscnetworkreachabilityflagsiswwan) 判斷中加上**

if ((flags & kscnetworkreachabilityflagsiswwan) == kscnetworkreachabilityflagsiswwan)

else

if ([currentstr isequaltostring:ctradioaccesstechnologygprs]|| [currentstr isequaltostring:ctradioaccesstechnologyedge])else

}if ((flags & kscnetworkreachabilityflagstransientconnection) == kscnetworkreachabilityflagstransientconnection)

return kreachablevia3g;

}return reachableviawwan;

}複製**

在需要用到的地方引入我們修改過後的reachability

監聽網路變化

//新增網路監測

[[nsnotificationcenter defaultcenter] addobserver:self

selector:@selector(reachabilitychanged:)

name: kreachabilitychangednotification

object: nil];

//開啟網路監測

self.intertreach = [reachability reachabilityforinternetconnection];

[self.intertreach startnotifier];

uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(100, 100, 300, 30)];

[self.view addsubview:label];

self.label = label;

//獲取當前的網路狀態

networkstatus status = [self.intertreach currentreachabilitystatus];

[self judgenetworkstatus:status];複製**

當網路發生改變時 會觸發

/**

當網路狀態發生變換時 會觸發這個方法

@param no 通知

*/- (void)reachabilitychanged:(nsnotification *)no複製**

還是很簡單的

源** 放在了

IOS 網路監測

大部分的應用都與網路有關 如果你沒有網路監測 來監測是否連線網路 很容易讓背鍋 用法也特別的簡單 按照我下面的 二部曲 包你輕鬆過 2.第二部曲 使用方法 1 靜態 網路環境現在分三種 wifi 2g 3g 4g 無網路 所以 reachability 監測也是分三種 wifi reachabili...

iOS 監測網路狀態

ios開發網路篇 監測網路狀態 ios開發網路篇 監測網路狀態 一 說明 在網路應用中,需要對使用者裝置的網路狀態進行實時監控,有兩個目的 1 讓使用者了解自己的網路狀態,防止一些誤會 比如怪應用無能 2 根據使用者的網路狀態進行智慧型處理,節省使用者流量,提高使用者體驗 沒有網路 只顯示離線的快取...

iOS 監測網路狀態

1 不廢話,直接上乾貨 在reachability.m檔案中匯入coretelephony庫 import 找到此方法if flags kscnetworkreachabilityflagsiswwan kscnetworkreachabilityflagsiswwan 修改,對了 先修改列舉值在r...