iOS 9 NEHotspotHelper 的NetworkExtension使用
来源:互联网 发布:linux shell 数值比较 编辑:程序博客网 时间:2024/06/05 10:47
- 应用程序的Info.plist必须添加一个包含“remote-notification”的UIBackgroundModes数组
- 应用程序必须设置“com.apple.developer.networking.HotspotHelper'作为它的权利之一。该权利的值是一个布尔值true
- 要申请这个权利,请发送E-MAIL到networkextension@apple.com
- 更多信息请参阅苹果的Hotspot Network Subsystem Programming Guide
Register a Hotspot Helper
+ (BOOL)registerWithOptions:(NSDictionary<NSString *, NSObject *> *)options queue:(dispatch_queue_t)queue handler:(NEHotspotHelperHandler)handler
@param options <key>kNEHotspotHelperOptionDisplayName</key> <string>WIFI的注释tag字符串</string> // 此处设置的内容会在WiFi列表中每个WiFi下边展示出来@param queue dispatch_queue_t 用来调用handle的block@param handler NEHotspotHelperHandler block 用于执行处理 helper commands.@return 注册成功YES, 否则NO.@discussion 一旦这个API调用成功,应用程序有资格在后台启动,并参与各种热点相关的功能。 当应用程序启动此方法应该调用一次。再次调用它会不会产生影响,并返回NO。
Manage Hotspot Networks
+ (BOOL)logoff:(NEHotspotNetwork *)network
@param network 对应当前关联的WiFi网络NEHotspotNetwork@return 注销命令已成功进入队列YES, 否则NO.@discussion 调用此方法使kNEHotspotHelperCommandTypeLogoff型的NEHotspotHelperCommand向应用程序发出的“handler”模块 网络参数必须符合当前关联的WiFi网络,即它必须来自对NEHotspotHelperCommand网络属性或方法supportedInterfaces
+ (NSArray *)supportedNetworkInterfaces
@return 如果没有网络接口被管理,返回nil。否则,返回NEHotspotNetwork对象数组。@discussion 每个网络接口由NEHotspotNetwork对象表示。当前返回的数组包含一个NEHotspotNetwork对象代表Wi-Fi接口。 这种方法的主要目的是当没有得到一个命令来处理它时,让一个热点助手偶尔提供在UI里其准确的状态。 此方法加上NEHotspotNetwork的isChosenHelper方法允许应用程序知道它是否是当前处理的网络。
Data Types
typedef void (^NEHotspotHelperHandler)(NEHotspotHelperCommand * cmd)
@discussion 当调用方法registerWithOptions:queue:handler:时,Hotspot Helper app提供这种类型的blcok。 每次有要处理的命令时调用block。
以上为对这个类的一些解读,最后附上具体的代码。
NSMutableDictionary* options = [[NSMutableDictionary alloc] init];
[options setObject:@"??????????" forKey:kNEHotspotHelperOptionDisplayName];
dispatch_queue_t queue = dispatch_queue_create("com.myapp.ex", NULL);
BOOL returnType = [NEHotspotHelper registerWithOptions:options queue:queue handler: ^(NEHotspotHelperCommand * cmd) {
NEHotspotNetwork* network;
NSLog(@"cmd %@", cmd);
NSLog(@"COMMAND TYPE: %ld", (long)cmd.commandType);
NSLog(@"network %@",cmd.network);
NSLog(@"networkList %@",cmd.networkList);
if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType ==kNEHotspotHelperCommandTypeFilterScanList) {
for (network in cmd.networkList) {
NSLog(@"COMMAND TYPE After: %ld", (long)cmd.commandType);
if ([network.SSID isEqualToString:@"A8F8"]) {
double signalStrength = network.signalStrength;
NSLog(@"Signal Strength: %f", signalStrength);
[network setConfidence:kNEHotspotHelperConfidenceHigh];
[network setPassword:@"123456789"];
NEHotspotHelperResponse *response = [cmd createResponse:kNEHotspotHelperResultSuccess];
NSLog(@"Response CMD %@", response);
[response setNetworkList:@[network]];
[response setNetwork:network];
[response deliver];
}
}
}
}];
NSLog(@"result :%d", returnType);
NSArray *array = [NEHotspotHelper supportedNetworkInterfaces];
NSLog(@"wifiArray:%@", array);
NEHotspotNetwork *connectedNetwork = [array lastObject];
NSLog(@"supported Network Interface: %@", connectedNetwork);
- iOS 9 NEHotspotHelper 的NetworkExtension使用
- iOS 9 NetworkExtension使用
- [绍棠] iOS 9 NetworkExtension使用
- iOS NEHotspotHelper使用
- iOS NEHotspotHelper使用
- IOS NetworkExtension 框架使用笔记
- IOS NetworkExtension 框架使用笔记
- NEHotspotHelper的使用和申请
- iOS9 NetworkExtension使用
- iOS 利用 NEHotspotHelper 获取 WiFi 列表
- iOS 利用 NEHotspotHelper 获取 WiFi 列表
- iOS 利用 NEHotspotHelper 获取 WiFi 列表
- 关于IOS9中NetworkExtension框架SimpleTunnel Demo中VPN连接部分的讲解
- NEHotspotHelper权限申请全纪录
- networkextension编译错题折腾
- iOS 9 loadViewIfNeeded的使用
- iOS学习9:UICollectionView的简单使用
- IOS第9天控制器的使用
- logback 常用配置详解(二) <appender>
- 马走日__递归
- 错误积累(二) There is no result type defined 错误
- 浙大 PAT Advanced level 1027. Colors in Mars (20)
- logback 常用配置详解(三) <filter>
- iOS 9 NEHotspotHelper 的NetworkExtension使用
- linux安装mysql
- 阐述final、finally、finalize的区别
- 浙大 PAT Advanced level 1028. List Sorting (25)
- 关于编程的时候使用自动化.
- 二分查找的递归写法和非递归写法
- Failed to connect sshd on "10.6.6.229:99"ProxyHTTP:java.io.IOException:proxy error:Service Unavailab
- java并发之Unsafe类
- 217. Contains Duplicate