zoukankan      html  css  js  c++  java
  • 判断网络环境(3G/WIFI)

      通过Reachability来判断设备的网络环境,方法比较简单。直接将Reachability.h和Reachability.m加入到工程中,然后添加SystemConfiguration.framework框架,就可以使用了。工程截图:

    ViewController.h

    //
    // ViewController.h
    // NetworkStatusDemo
    //
    // Created by Fox on 12-3-15.
    // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
    //

    #import <UIKit/UIKit.h>
    #import "Reachability.h"

    @interface ViewController : UIViewController{
    IBOutlet UILabel *netstatus;

    Reachability* status; //网络状态

    }
    @property (retain, nonatomic) IBOutlet UILabel *netstatus;
    @property (retain, nonatomic) Reachability* status;

    + (BOOL) IsEnableWIFI;
    + (BOOL) IsEnable3G;

    @end

    ViewController.m

    //
    // ViewController.m
    // NetworkStatusDemo
    //
    // Created by Fox on 12-3-15.
    // Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
    //

    #import "ViewController.h"
    #import "Reachability.h"

    @implementation ViewController
    @synthesize netstatus;
    @synthesize status;



    - (void)viewDidLoad
    {
    [super viewDidLoad];

    self.status = [[Reachability alloc] init];
    status = [Reachability reachabilityWithHostName:@"www.cnblogs.com/foxmin"];
    switch ([status currentReachabilityStatus]) {
    case NotReachable:
    // 没有网络连接
    self.netstatus.text = @"没有网络连接";
    break;
    case ReachableViaWWAN:
    // 使用3G网络
    self.netstatus.text = @"使用3G网络";
    break;
    case ReachableViaWiFi:
    // 使用WiFi网络
    self.netstatus.text = @"使用WiFi网络";
    break;
    }

    //程序启动时,检查程序的网络环境
    if ([ViewController IsEnableWIFI] && ![ViewController IsEnable3G]) {
    self.netstatus.text = @"使用WiFi网络";
    }else if(![ViewController IsEnableWIFI] && [ViewController IsEnable3G]){
    self.netstatus.text = @"使用3G网络";
    }else self.netstatus.text = @"没有网络连接";

    }

    - (void)viewDidUnload
    {
    [self setNetstatus:nil];
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
    }

    - (void)dealloc {
    [netstatus release];
    [super dealloc];
    }


    /*
    *判断是否通过wifi
    */
    + (BOOL) IsEnableWIFI {
    return ([[Reachability reachabilityForLocalWiFi] currentReachabilityStatus] != NotReachable);
    }

    /*
    *判断是否通过3G
    */
    + (BOOL) IsEnable3G {
    return ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] != NotReachable);
    }


    @end
  • 相关阅读:
    只有程序员才懂这些黑色幽默!
    只有程序员才懂这些黑色幽默!
    程序员常访问的国外技术交流网站
    回归分析:非线性nlinfi
    Java设计模式(二十一):职责链模式
    Angular4——7.表单处理
    ubuntu 代理设置
    Qt 隐藏标题栏 窗口移动 鼠标事件
    Shevon's Blog
    Allenmind's Blog
  • 原文地址:https://www.cnblogs.com/foxmin/p/2398285.html
Copyright © 2011-2022 走看看