BBANetworkReachablityManager.h
2.73 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
// BBANetworkReachablityManager.h
// BBAAPIRequest
//
// Created by liumuye on 2021/6/20.
//
// Copyright © 2021年 baidu. All rights reserved.
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// 联网类型
typedef NS_ENUM(NSInteger, BBANetworkConnectType) {
BBANetworkConnectType_None = -1,
BBANetworkConnectType_Unknown,
BBANetworkConnectType_WiFi,
BBANetworkConnectType_2G,
BBANetworkConnectType_3G,
BBANetworkConnectType_4G,
BBANetworkConnectType_5G
};
/// 联网类型(子类型)
typedef NS_ENUM(NSInteger, BBANetworkConnectSubType) {
BBANetworkConnectSubType_None = -1,
BBANetworkConnectSubType_Unknown,
BBANetworkConnectSubType_WiFi,
BBANetworkConnectSubType_GPRS,
BBANetworkConnectSubType_Edge,
BBANetworkConnectSubType_WCDMA,
BBANetworkConnectSubType_HSDPA,
BBANetworkConnectSubType_HSUPA,
BBANetworkConnectSubType_CDMA1x,
BBANetworkConnectSubType_CDMAEVDORev0,
BBANetworkConnectSubType_CDMAEVDORevA,
BBANetworkConnectSubType_CDMAEVDORevB,
BBANetworkConnectSubType_eHRPD,
BBANetworkConnectSubType_LTE,
BBANetworkConnectSubType_NRNSA,
BBANetworkConnectSubType_NR
};
/// 用户授予的网络权限
typedef NS_ENUM(NSInteger, BBANetworkPermission) {
BBANetworkPermission_Unknown,
BBANetworkPermission_Restricted,
BBANetworkPermission_NotRestricted
};
/// 设备网络连通性管理
/// 1. 查看网络制式&网卡
/// 2. 联网&网络切换监听 (待建设, use AFNetworkReachabilityManager temporarily)
/// 3. 网络质量 (待建设, use BBANetworkQualityStatusManager temporarily)
/// 4. 出口IP
@interface BBANetworkReachablityManager : NSObject
/// 当前联网状态
@property (nonatomic, class, assign, readonly) BBANetworkConnectType connectType;
/// 当前联网状态描述
@property (nonatomic, class, copy, readonly) NSString *connectTypeStr;
/// 当前用户授权的网络权限状态
@property (nonatomic, class, assign, readonly) BBANetworkPermission permissionState;
/// 当前是否有使用VPN
@property (nonatomic, class, assign, readonly) BOOL vpnConnected;
/// 用户出口IP
@property (nonatomic, class, copy, readonly) NSString *clientIP;
#pragma mark - Mobile
/// 移动网卡是否存在且连接状态
@property (nonatomic, class, assign, readonly) BOOL mobileInterfaceConnected;
/// 移动网卡连接类型
@property (nonatomic, class, assign, readonly) BBANetworkConnectType mobileInterfaceConnectType;
/// 移动网卡连接制式
@property (nonatomic, class, assign, readonly) BBANetworkConnectSubType mobileInterfaceConnectSubType;
#pragma mark - WiFi
/// WiFi网卡是否存在且连接状态
@property (nonatomic, class, assign, readonly) BOOL wifiInterfaceConnected;
@end
NS_ASSUME_NONNULL_END