NEHotspotHelper的使用和申请
来源:互联网 发布:linux系统管理技术手册 编辑:程序博客网 时间:2024/05/17 22:08
最近需要在APP中加入WiFi相关的功能,之前没有做过,比较迷茫!这个框架是iOS9 以后才出来的,国内有APP用的,但是开发的资料很少!自己在网上找了很多零散的资料,然后写了一个demo,下面把自己的写的过程分享给大家,希望可以对你有所帮助,也请大神支出不足之处:
这个框架的使用大致分为这几个步骤
- 向苹果申请使用权限
- 配置证书文件
- 配置工程
- 代码实现
向苹果申请框架的使用权限
- 上这个网站去填写一个申请表。
- 申请的周期比较长最少是两周,甚至更长时间。我在第一次申请的时候就用了两个月的时间。
- 在填写申请表的时候尽量使用英文去填写,那样申请陈宫的概率会比较大的
- 这个是申请的网址NetworkExtension框架使用权限申请
- 如果申请成功了会收到一个内容这样的邮件
证书文件配置
等待收到申请成功后。就可以着手下面的工作了,开始配置证书和配置文件,我建议在获得这个框架的使用权限以后从新申请一个证书来调试,我的就是把原来旧的证书删除以后才调试成功的!
- 下面就是配置证书的步骤
- 证书添加完成后配置identifiers文件
- 在配置identifiers文件的时候注意要勾选上我图片上箭头标注的两个选项
- 接下来配置iCloud文件
- Identifiers的时候要和你的工程的bundle ID 是一样的
- 这里配置完成后,再点开刚才生成的APP IDs,这个时候,iCloud那一行的两个点会显示黄色的 ,然后找到到edit,点击进去
- 然后配置你刚才生成的iCloud文件
这样ID文件就配置完成了
接下来就是配置profile文件了
- 这里选择你刚才配置好的APP IDs
- 选择刚才刚刚生成的证书
- 选择调试设备
- 如果你申请框架使用权限成功了,那么最后一步就会有这个选项,选择下面那个!
OK!到这个地方,证书配置完成了!接下来就是配置自己的工程了
工程配置
- 首先打开工程,啥东西都不要动!按照下面的图片里面的内容进行工程配置
- 这个地方很重要,不能整错了
- 配置info.plist文件
OK!这就是工程里面需要配置的地方
代码实现
- 直接把下面的代码复制到工程里面不出问题就可以看到控制台输出WiFi列表信息了,(工程运行后要打开系统的WiFi设置界面才有WiFi信息输出):
//// ViewController.m// Wifi//// Created by Jone Yin on 16/9/22.// Copyright © 2016年 Jone Yin. All rights reserved.//#import "ViewController.h"#import <NetworkExtension/NetworkExtension.h>@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; 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(@"COMMAND TYPE: %ld", (long)cmd.commandType); [cmd createResponse:kNEHotspotHelperResultAuthenticationRequired]; if (cmd.commandType == kNEHotspotHelperCommandTypeEvaluate || cmd.commandType ==kNEHotspotHelperCommandTypeFilterScanList) { NSLog(@"WIFILIST: %@", cmd.networkList); for (network in cmd.networkList) { NSLog(@"COMMAND TYPE After: %ld", (long)cmd.commandType); if ([network.SSID isEqualToString:@"ssid"]|| [network.SSID isEqualToString:@"roam2free_dev_5G"]) { double signalStrength = network.signalStrength; NSLog(@"Signal Strength: %f", signalStrength); [network setConfidence:kNEHotspotHelperConfidenceHigh]; [network setPassword:@"roam2free_deVelop"]; 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);}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end
联系方式
- 有什么指正可以加入这个群 585640621,大家一起讨论!
2 0
- NEHotspotHelper的使用和申请
- NEHotspotHelper权限申请全纪录
- iOS 9 NEHotspotHelper 的NetworkExtension使用
- iOS NEHotspotHelper使用
- iOS NEHotspotHelper使用
- 权限的申请和使用
- IOS证书的申请和使用
- 使用vector和string代替动态申请的数组
- 域名的申请和设置
- 内存的申请和释放
- [仅作备份]申请和使用EC2
- 百度推荐怎么申请和使用
- iOS 证书申请和使用详解
- iOS 证书申请和使用详解
- iOS 证书申请和使用详解
- 关于android安卓的wifi功能使用需要申请的权限和管理类
- 连续内存空间的申请(一次性申请全部和利用指针数组每个元素分别申请)
- 如何申请开发证书和使用Code IDE制作可以真机调试的ipa
- Qt解析XML相关(QDom方式)
- html中对hidden状态input控件进行赋值,而赋的值中包含标签,例如"<img~~~>",这样的话>就会导致input控件被截断!
- 位运算实现a+b
- 设计模式之五:原型模式—对象的克隆
- Ubuntu 快捷键
- NEHotspotHelper的使用和申请
- MySQL 主从配置和基于Spring 的读写分离
- 分布式消息队列kafka系列介绍 — 配置文件详解
- java特殊符号替换
- 【从C到C++学习笔记】引用/const引用/引用传递/引用作为函数返回值/引用和指针的区别
- go Hijack
- 计算机各层网络协议
- linux主机防御ids 常用开源工具
- CDMA PDU 编解码补充解析