iOS 判断当前设备是否连接到网络

来源:互联网 发布:java常用的框架有哪些 编辑:程序博客网 时间:2024/05/17 01:50

1.判断方法:

- (BOOL)connectedToNetwork{

    struct sockaddr_storage zeroAddress;//IP地址

    bzero(&zeroAddress,sizeof(zeroAddress));//将地址转换为0.0.0.0

    zeroAddress.ss_len=sizeof(zeroAddress);//地址长度

    zeroAddress.ss_family=AF_INET;//地址类型为UDP, TCP, etc.

    

    SCNetworkReachabilityRef  defaultRouteReachability=SCNetworkReachabilityCreateWithAddress(NULL, (structsockaddr *)&zeroAddress);

    

    SCNetworkReachabilityFlags flags;

    

    BOOL didRetrieveFlags =SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);

    CFRelease(defaultRouteReachability);

    

    //如果不能获取连接标志,则不能连接网络,直接返回

    if (!didRetrieveFlags)

    {

        returnNO;

    }

    //根据获得的连接标志进行判断

    

    BOOL isReachable = flags &kSCNetworkFlagsReachable;

    BOOL needsConnection = flags &kSCNetworkFlagsConnectionRequired;

    return (isReachable&&!needsConnection) ?YES : NO;

    returnYES;

}

2.调用方式:

if([self connectedToNetwork]){

   连络处理;

}

   else{

    未联网处理;

  }

0 0
原创粉丝点击