Sha*_*aka 11 objective-c ios ios5 ios6
当用户连接到iOS应用程序中的特定WiFi网络时,是否有任何方法可以捕获事件.即使可以使用任何不需要超级用户权限(越狱)的私有库来实现这一点也很好.我只想捕获连接的SSID的变化事件.
我建议只使用Larme发布的内容,并设置NSTimer来检查每一秒左右,当前网络的SSID是什么,如果您检测到更改,只需执行您需要做的任何事情.请记住,改变WiFi网络不是即时发生的事情,所以拥有1秒的分辨率也不错
在 applicationDidFinishLoading
NSTimer *ssidTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(fetchSSIDInfo) userInfo:nil repeats:YES];
Run Code Online (Sandbox Code Playgroud)
在AppDelegate中
- (id)fetchSSIDInfo {
NSArray *ifs = (__bridge_transfer id)CNCopySupportedInterfaces();
NSLog(@"Supported interfaces: %@", ifs);
id info = nil;
NSString *ifnam = @"";
for (ifnam in ifs) {
info = (__bridge_transfer id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);
NSLog(@"%@ => %@", ifnam, info);
if (info && [info count]) { break; }
}
if ([info count] >= 1 && [ifnam caseInsensitiveCompare:prevSSID] != NSOrderedSame) {
// Trigger some event
prevSSID = ifnam;
}
return info;
}
Run Code Online (Sandbox Code Playgroud)
这样的事情.我不能检查代码是否没有拼写错误,因为我不在mac前面,但它不应该太差异
| 归档时间: |
|
| 查看次数: |
5465 次 |
| 最近记录: |