iOS 判断网络是否连接

 1 //判断网络是否连接
 2 + (BOOL) connectedToNetwork
 3 {
 4     //创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
 5     struct sockaddr_in zeroAddress;            //struct用来向方法中传递复杂的参数(把参数当作对象,这样便于扩展)
 6     bzero(&zeroAddress, sizeof(zeroAddress));
 7     zeroAddress.sin_len = sizeof(zeroAddress);
 8     zeroAddress.sin_family = AF_INET;
 9
10     // Recover reachability flags
11     SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
12     SCNetworkReachabilityFlags flags;
13     //获得连接的标志
14     BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
15     CFRelease(defaultRouteReachability);
16     //如果不能获取连接标志,则不能连接网络,直接返回
17     if (!didRetrieveFlags)
18     {
19         return NO;
20     }
21     //根据获得的连接标志进行判断
22     BOOL isReachable = flags & kSCNetworkFlagsReachable;
23     BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
24     BOOL isWWAN = flags & kSCNetworkReachabilityFlagsIsWWAN;
25     return (isReachable && (!needsConnection || isWWAN)) ? YES : NO;
26 }
时间: 2024-12-25 10:22:16

iOS 判断网络是否连接的相关文章

c# 判断网络是连接到互联网

方法1:InternetGetConnectedState [System.Runtime.InteropServices.DllImport("wininet")] private extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue); private void button1_Click(object sender, EventArgs e) {

判断网络是否连接 和 判断GPS是否连接

//判断网络是否连接 public static Boolean isNetworkEnabled(Context context){ int status=-1  //设置默认连接的状态为-1 ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = connec

Android判断网络是否连接

<!-- 配置文件判断网络是否连接 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> public static boolean isNetworkAvailable(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Cont

使用ConnectivityManager 判断网络是否连接

网络连接状态对那些依赖网络的APP是必须的.以下有两种方法实现了对网络的检查.组合使用效果更加 第一中方法:使用ConnectivityManager 检查网络连接 主要步骤: (1)获取ConnectivityManager对象. (2)使用ConnectivityManager对象的getActiveNetworkInfo获取NetworkInfo 对象. (3)使用ConnectivityManager对象的getNetworkInfo获取NetworkInfo对象,然后调用Network

Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络

如果拟开发一个网络应用的程序,首先考虑是否接入网络,在Android手机中判断是否联网可以通过ConnectivityManager 类的isAvailable()方法判断,首先获取网络通讯类的实例 ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);  ,使用cwjManager.getActiveNetworkInfo().isAvailable(

ios 判断网络连接方式

ios中判断网络连接方式的方法很多种,常用的大多是加入开源库,然后根据开源库中提供的方法进行判断. 下面提供一种方法:多多指教 NSArray *subviews = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews]; NSNumber *dataNetworkItemView = nil; for (id s

iOS 判断网络连接状态的几种方法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #801b80 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Comic Sans MS"; color: #801b80 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Arial; col

iOS 判断当前是否连接到网络和网络类型

之前有判断过是否连接到网络,没有使用apple的示例中的Reachability. #import <sys/socket.h> #import <netinet/in.h> #import <arpa/inet.h> #import <SystemConfiguration/SCNetworkReachability.h> -(BOOL)isConnectToNewtwork { struct sockaddr_in zeroAddress; bzero(

ios 判断网络

网络的重要性,相信大家都知道了.这次介绍下ios是如何判断网络的好坏的,由于在开发中用到,所以分享给大家,很简单.这里要用到Reachability封装类来实现,大家可以网上去下载Reachability.m 和Reachability.h文件,需要我提供请留言. 具体代码: 在AppDelegate里面实现: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary