如何检查 Wifi 中的可用网络
Posted
技术标签:
【中文标题】如何检查 Wifi 中的可用网络【英文标题】:How to check Internet available in Wifi 【发布时间】:2017-03-13 13:10:23 【问题描述】:如何检查互联网连接是否可用
我正在使用 Apple Reachability 类通过以下代码检查网络状态
-(BOOL)isInternetConnectionAvailable
return ([[Reachability reachabilityForInternetConnection]currentReachabilityStatus] == NotReachable)?NO:YES;
我有一个移动热点,然后将那个 wifi 连接到我的 iPhone。
然后移动数据关闭,热点开启。
但是 rechability 类正在返回ReachableViaWiFi
如何检查网络是否有互联网。
【问题讨论】:
找到你的答案:***.com/questions/1083701/… 【参考方案1】:为此,您必须检查互联网,为此创建一个互联网验证类,然后在您使用互联网的每个地方调用该类。
在您的 .h 文件中创建一个静态方法,如下所示。
#import <Foundation/Foundation.h>
@interface InternetValidation : NSObject
+ (BOOL) connectedToNetwork;
@end
然后,在你的 .m 文件中
#import "InternetValidation.h"
#import <SystemConfiguration/SCNetworkReachability.h>
#include <netinet/in.h>
@implementation InternetValidation
+ (BOOL) connectedToNetwork
BOOL success = NO;
const char *host_name = [@"google.com"
cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable)
success = YES;
else
success = NO;
//NSLog(@"%d",success);
return success;
@end
现在,将这个类导入到你要检查互联网的地方。
然后像这样调用那个互联网类方法。
if ([InternetValidation connectedToNetwork])
//Do your code here.
else
// No Internet;
【讨论】:
这不起作用。它返回是,即使互联网不可用。以上是关于如何检查 Wifi 中的可用网络的主要内容,如果未能解决你的问题,请参考以下文章
如何在手机中检查 WIFI 和 3G(数据计划)中的网络连接启用或禁用?
如何获取可用的 wifi 网络并将它们显示在 android 的列表中
如何在android中检查网络是不是连接到wifi [重复]
即使设备连接到 Wifi 或移动数据,也要检查互联网可用性 [重复]