监测网络状态

监测网络状态

转自 http://www.cnblogs.com/wendingding/p/3950114.html#

有些许修改

#import "YYViewController.h"
#import "Reachability.h"

@interface YYViewController ()
@property (nonatomic, strong) Reachability *conn;
@end

@implementation YYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
   
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(networkStateChange)
name:kReachabilityChangedNotification object:nil];
    self.conn = [Reachability reachabilityForInternetConnection];
    [self.conn startNotifier];

  [[NSNotificationCenter defaultCenter] postNotificationName:kReachabilityChangedNotification object:nil];//发通知(增加)
}

- (void)dealloc
{
    [self.conn stopNotifier];
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)networkStateChange
{
    [self checkNetworkState];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{

}

- (void)checkNetworkState
{
    // 1.检测wifi状态
    Reachability *wifi = [Reachability reachabilityForLocalWiFi];
    
    // 2.检测手机是否能上网络(WIFI\3G\2.5G)
    Reachability *conn = [Reachability reachabilityForInternetConnection];
    
    // 3.判断网络状态
    if ([wifi currentReachabilityStatus] != NotReachable) { // 有wifi
        NSLog(@"有wifi");
        
    } else if ([conn currentReachabilityStatus] != NotReachable) { // 没有使用wifi, 使用手机自带网络进行上网
        NSLog(@"使用手机自带网络进行上网");
        
    } else { // 没有网络
        
        NSLog(@"没有网络");

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil
                                                        message:@"没有网络请检查网络设置"
                                                       delegate:nil
                                              cancelButtonTitle:@"确定"
                                              otherButtonTitles:nil];
        [alert show];
        alert = nil;
    }
}
@end

// 用WIFI
// [wifi currentReachabilityStatus] != NotReachable
// [conn currentReachabilityStatus] != NotReachable

// 没有用WIFI, 只用了手机网络
// [wifi currentReachabilityStatus] == NotReachable
// [conn currentReachabilityStatus] != NotReachable

// 没有网络
// [wifi currentReachabilityStatus] == NotReachable
// [conn currentReachabilityStatus] == NotReachable

这只是网络状态改变时就会检测到,但一开始就没网络的状态下需要自己判断再提示信息

时间: 2024-11-08 01:13:42

监测网络状态的相关文章

iOS开发之监测网络状态

一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态 https://developer.apple.com/library/ios/samplecode/Reachabil

iOS开发网络篇—监测网络状态

iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态 https://developer.apple.com/library/ios/samp

iOS基础-网络-监测网络状态

iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态 https://developer.apple.com/library/ios/samp

Android实践--监测网络状态

Android 监测网络状态 我们在使用Android手机时候,一些APP需要网络环境才能运行,所以手机需要可用的网络,不管是2G.3G或者WIFI,甚至有一些比较耗流量的APP只能在WIFI的环境下运行,或者提供用户自行选择是否只能在WIFI环境下运行,作为用户貌似后者体验更好,那么作为开发者,我们仅仅需要几步就能给用户这种体验. ----------------------------------------------------------------------------------

OS开发网络篇—监测网络状态

iOS开发网络篇—监测网络状态 一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态 https://developer.apple.com/library/ios/samp

iOS开发网络篇—监测网络状态(使用Reachability)

一.说明 在网络应用中,需要对用户设备的网络状态进行实时监控,有两个目的: (1)让用户了解自己的网络状态,防止一些误会(比如怪应用无能) (2)根据用户的网络状态进行智能处理,节省用户流量,提高用户体验 WIFI\3G网络:自动下载高清图片 低速网络:只下载缩略图 没有网络:只显示离线的缓存数据 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态 https://developer.apple.com/library/ios/samplecode/Reachabil

并发ping监测网络状态

""" 网络监测v2.0,改进为使用多进程并发监测多个IP或域名,更加高效 兼容WINXP系统 同时检查本地到baidu.com或qq.com等的通讯情况并附至邮件,可以更客观地了解本地网络情况 linxingyi 20160305 """ import os, time,subprocess, smtplib, datetime, platform from multiprocessing import Pool from email.head

AFN三方文件 监测网络状态 请求网络数据

AFNetworking 三方文件来请求网络数据 第一步 引头文件 #import "AFNetworking.h" 第二步 创建manager用来网络请求 AFHTTPRequestOperationManager *manager=[AFHTTPRequestOperationManager manager]; 第三步 :进行网络请求 因为咱们的接口问题 ,需要添加一句@"text/html" 在AFURLResponseSerialization.m文件中的第

Android实例-监测网络状态及一些事件(XE8+小米2)

1.网络连接:是指现在可不可以上网(你非要问我什么是网,我会K你呀的). 2.WIFI网络:是指现在可以上网,用的是不是WIFI网络(如果你打开了WIFI那它会显示正在使用WIFI). 3.移动网络:是指现在可以上网,用的是不是移动网络(如果你打开了移动的数据流量它会显示移动网络). 第三方单元: 1 unit Androidapi.JNI.Network; 2 3 interface 4 5 function IsConnected: Boolean; 6 7 function IsWiFiC