AlicloudReachabilityManager.h
1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
//
// AlicloudReachabilityManager.h
//
// Created by 亿刀 on 14-1-9.
// Edited by junmo on 15-5-16
// Copyright (c) 2014年 Twitter. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#define ALICLOUD_NETWOEK_STATUS_NOTIFY @"AlicloudNetworkStatusChangeNotify"
typedef enum {
AlicloudNotReachable = 0,
AlicloudReachableViaWiFi,
AlicloudReachableVia2G,
AlicloudReachableVia3G,
AlicloudReachableVia4G
} AlicloudNetworkStatus;
@interface AlicloudReachabilityManager : NSObject
/**
* 获取Reachability单例对象
*/
+ (AlicloudReachabilityManager *)shareInstance;
/**
* 获取Reachability单例对象,为保证全局维护一个netInfo实例,可从外部传入netInfo对象的引用
* warn: netInfo多次实例化,有一定几率crash
*
*/
+ (AlicloudReachabilityManager *)shareInstanceWithNetInfo:(CTTelephonyNetworkInfo *)netInfo;
/**
* 返回当前网络状态(同步调用,可能会阻塞调用线程)
*/
- (AlicloudNetworkStatus)currentNetworkStatus;
/**
* 返回之前网络状态
*/
- (AlicloudNetworkStatus)preNetworkStatus;
/**
* 检测网络是否连通(同步调用,阻塞调用线程)
*/
- (BOOL)checkInternetConnection;
/**
* 检测Wifi网络是否联通
*/
- (BOOL)isReachableViaWifi;
/**
* 检测蜂窝网络是否联通
*/
- (BOOL)isReachableViaWWAN;
@end