當前位置:首頁 » 無線網路 » ios判斷是wifi還是網路
擴展閱讀
哪個網站是全英文的 2024-09-23 19:10:11

ios判斷是wifi還是網路

發布時間: 2022-01-15 13:46:14

A. iOS學習之判斷是否有網路的方法

如果有wifi網路的話會在左上角顯示一個wifi圖標要是3g的話就是3g網圖標。

B. iOS oc 檢測手機移動網路和wifi是否開啟

利用Reachability的的一個方法currentReachabilityStatus 獲取枚舉類型值判斷是否為2即可,不是2就不是WiFi。

enum {

// DDG NetworkStatus Constant Names.
kNotReachable = 0, // Apple's code depends upon 'NotReachable' being the same value as 'NO'.
kReachableViaWWAN, // Switched order from Apple's enum. WWAN is active before WiFi.
kReachableViaWiFi

};
typedef uint32_t NetworkStatus;

C. ios怎麼判斷當前連接的是哪一個wifi

不會 自動鎖定運營商的
判斷是否是wifi或者3G這些都是弄過,但是運營商就不確定。
ASI裡面有個Reachability.h這個類,
可以處理前面一個問題: Reachability *r=[Reachability reachabilityWithHostName:@"www.apple.com"];
switch ([r currentReachabilityStatus]) { case NotReachable:
沒有網路連接 netstate=@"沒有網路";
break; case ReachableViaWWAN:{ // 使用3G網路 netstate=@"3G"; }
break; case ReachableViaWiFi:{ // 使用WiFi網路 netstate=@"WiFi"; } break; }

D. ios 判斷用戶是否使用WIFI如果不是判斷具體的運營商

不會 自動鎖定運營商的
判斷是否是wifi或者3G這些都是弄過,但是運營商就不確定。
ASI裡面有個Reachability.h這個類,
可以處理前面一個問題: Reachability *r=[Reachability reachabilityWithHostName:@"www.apple.com"];
switch ([r currentReachabilityStatus]) { case NotReachable:
沒有網路連接 netstate=@"沒有網路";
break; case ReachableViaWWAN:{ // 使用3G網路 netstate=@"3G"; }
break; case ReachableViaWiFi:{ // 使用WiFi網路 netstate=@"WiFi"; } break; }

E. iOS 判斷網路連接狀態的幾種方法

(一).Reachability
添加源文件及Framework
Apple 的官方例子 Reachability 中介紹了獲取、檢測設備當前網路狀態的方法。在你的程序中,需要把該工程中的Reachability.h 和 Reachability.m 拷貝到你的工程中,同時需要把 SystemConfiguration.framework 添加到工程中,
如下圖:

// 監聽網路狀態改變的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name: object:nil];

// 創建Reachability
self.conn = [Reachability ];
// 開始監控網路(一旦網路狀態發生改變, 就會發出通知)
[self.conn startNotifier];

// 處理網路狀態改變
- (void)networkStateChange
{
// 1.檢測wifi狀態
Reachability *wifi = [Reachability reachabilityForLocalWiFi];

// 2.檢測手機是否能上網路(WIFI\3G\2.5G)
Reachability *conn = [Reachability ];

// 3.判斷網路狀態
if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
NSLog(@"有wifi");
} else if ([conn currentReachabilityStatus] != NotReachable) { // 沒有使用wifi, 使用手機自帶網路進行上網
NSLog(@"使用手機自帶網路進行上網");
} else { // 沒有網路
NSLog(@"沒有網路");
}
}

(二).AFN
// 1.獲得網路監控的管理者
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

// 2.設置網路狀態改變後的處理
[mgr :^(AFNetworkReachabilityStatus status) {
// 當網路狀態改變了, 就會調用這個block
switch (status) {
case : // 未知網路
NSLog(@"未知網路");
break;

case : // 沒有網路(斷網)
NSLog(@"沒有網路(斷網)");
break;

case : // 手機自帶網路
NSLog(@"手機自帶網路");
break;

case : // WIFI
NSLog(@"WIFI");
break;
}
}];

// 3.開始監控
[mgr startMonitoring];

(三)從狀態欄中獲取網路類型,代碼如下:
- (NSString *)getNetWorkStates{
UIApplication *app = [UIApplication sharedApplication];
NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
NSString *state = [[NSString alloc]init];
int netType = 0;
//獲取到網路返回碼
for (id child in children) {
if ([child isKindOfClass:NSClassFromString(@"")]) {
//獲取到狀態欄
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];

switch (netType) {
case 0:
state = @"無網路";
//無網模式
break;
case 1:
state = @"2G";
break;
case 2:
state = @"3G";
break;
case 3:
state = @"4G";
break;
case 5:
{
state = @"wifi";
break;
default:
break;
}
}
}
//根據狀態選擇
}
return state;
}
基本原理是從UIApplication類型中通過valueForKey獲取內部屬性 statusBar。然後篩選一個內部類型
(),最後返回他的 dataNetworkType屬性,根據狀態欄獲取網路
狀態,可以區分2G、3G、4G、WIFI,系統的方法,比較快捷,不好的是萬一連接的WIFI 沒有聯網的話,
識別不到。

F. 如何檢測IOS移動設備的WiFi網路連接

1、iOS10有一個很討厭的功能,就是每次打開一個新軟體,都會提示是否允許網路連接,如果沒有點擊允許或者打開軟體時系統沒有彈出這個提示,那麼是無法連接網路的。 2、建議雙擊Home鍵關閉軟體,重新打開,點擊允許使用網路,即可正常連接網路。 3、如果還是不行。檢查手機有沒有開啟網路開關,手機需要開啟網路連接功能才能連接的。 4、查看手機是否欠費,欠費的手機是無法連接數據網路的,需要充值。 5、網路延遲造成的無法連接網路,可以打開手機的飛行模式,五秒後再關閉,然後重新連接網路或者重啟一下手機。 6、所處在地方信號不好無法連接到網路,可以換個地方再連接。 7、以上為數據網路連接的解決方法,但如果連接的是無線網路,那麼需要查看一下手機wifi密碼輸入和無線路由器的上網設置是否都正確,其他設備是否可以通過wifi上網,建議把手機的wifi密碼刪除再重新輸入一遍,或者重啟、重新設置一下無線路由器。

G. js判斷手機是wifi還是流量

以下代碼僅供參考:

<scripttype="text/javascript">
varconnection=navigator.connection||navigator.mozConnection||navigator.webkitConnection||{tyep:'unknown'};
vartype_text=['unknown','ethernet','wifi','2g','3g','4g','none'];

alert(connection.type);
varre_el=document.getElementById("re");
varbtn_el=document.getElementById("btn");
functionget_status(){
if(typeof(connection.type)=="number"){
connection.type_text=type_text[connection.type];
}else{
connection.type_text=connection.type;
}
if(typeof(connection.bandwidth)=="number"){
if(connection.bandwidth>10){
connection.type='wifi';
}elseif(connection.bandwidth>2){
connection.type='3g';
}elseif(connection.bandwidth>0){
connection.type='2g';
}elseif(connection.bandwidth==0){
connection.type='none';
}else{
connection.type='unknown';
}
}
varhtml='Type:'+connection.type_text;
html+='<br>Bandwidth:'+connection.bandwidth;
html+='<br>isOnline:'+navigator.onLine;
re_el.innerHTML=html;
}

btn_el.onclick=function(){
re_el.innerHTML='Waiting...';
get_status();
}

</script>

H. iOS 判斷當前是2G,3G,4G還是wifi,獲取ssid

一、iOS 判斷當前是2G,3G,4G
- (NSString *)getNetWorkStates{
UIApplication *app = [UIApplication sharedApplication];
NSArray *children = [[[app valueForKeyPath:@"statusBar"]valueForKeyPath:@"foregroundView"]subviews];
NSString *state = [[NSString alloc]init];
int netType = 0;
//獲取到網路返回碼
for (id child in children) {
if ([child isKindOfClass:NSClassFromString(@"")]) {
//獲取到狀態欄
netType = [[child valueForKeyPath:@"dataNetworkType"]intValue];

switch (netType) {
case 0:
state = @"無網路";
//無網模式
break;
case 1:
state = @"2G";
break;
case 2:
state = @"3G";
break;
case 3:
state = @"4G";
break;
case 5:
{
state = @"wifi";
break;
default:
break;
}
}
}
//根據狀態選擇
return state;
}

二、獲取ssid
#pragma mark
#pragma 獲取當前的ssid
- (NSString *)CurrentSSIDInfo {
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
NSLog(@"Supported interfaces: %@", ifs);
id info = nil;
for (NSString *ifnam in ifs) {
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSLog(@"%@ => %@", ifnam, info);
if (info && [info count]) { break; }
}
return [[(NSDictionary*)info objectForKey:@"SSID"] lowercaseString];
}

I. 怎麼看蘋果手機用的是無線網路還是流量

流量只統計通過非WIFI走的。

扇形標志是WIFI,3G標志是WCDMA 3G,E是EDGE,o是GPRS

J. ios 怎麼判斷wifi是否接入了互聯網

步驟一:當「連我wifi」無法正常工作,即360連我wifi手機連上開不了網頁時。 可以按以下方法進行操作:打開「控制面板」,依次點擊「網路和Inter」->「查看網路狀態和任務」項進入。 步驟二:接著點擊「更改適配器」設置選項。 步驟三:右擊無線網卡所代表的連接圖標,並從彈出的菜單中選擇「屬性」項。 步驟四:並在打開的「無線網路屬性」窗口中切換至「共享」選項卡,勾選兩個選項,最後點擊「確定」完成設置。 步驟五:最後打開「連我wifi」,點擊「創建無線網路」按鈕。 然後在手機端再次登陸無線熱點,就會發現可以正常上網啦。