Swift通过私有MobileWiFi.framework扫描WiFi信息

要扫描 WiFi 信息,iOS 的限制挺严格的,尤其是 Apple 对于 WiFi 数据的访问控制。一般情况下,开发者无法直接通过公开 API 获取 WiFi 数据。不过,如果你对这方面有需求,比如做某些测试或者有特定要求,可以通过私有的 MobileWiFi.framework 来实现。这个框架能管理 WiFi 连接和相关信息的获取,虽然它是私有 API,不建议在 App Store 发布应用时使用,但在越狱设备或者非 App Store 分发的应用中,倒是可以尝试一下。

使用这个框架有点小技巧,要通过 Objective-C 桥接来实现 Swift 和 Objective-C 的混编。你得创建一个 Objective-C 的桥接头文件,并在里面导入MobileWiFi.framework。,在 Swift 中你可以定义一个类,调用框架里的方法,比如扫描 WiFi 网络。实际上,整个过程并不复杂,代码也挺简单:

@implementation WiFiScanner
- (NSArray *)scanWiFi {
  MWScanner *scanner = [[MWScanner alloc] init];
  NSArray *networks = [scanner scanForNetworks];
  return networks;
}
@end

不过,使用私有 API 的风险不小,是以后 iOS 版本更新会改动这些接口,所以要做好测试。如果你只是想简单获取 WiFi 信息,还是推荐使用 Apple 的公开 API,毕竟更稳定可靠。

另外,千万要注意,非法获取用户数据的行为在某些地区触犯法律,所以一定要确保自己的应用符合当地法律法规,避免不必要的麻烦。

zip
swift-通过私有的MobileWiFi.framework扫描WiFi信息.zip 预估大小:68个文件
folder
WiFiScanner-master 文件夹
file
entitlements.xml 368B
file
LICENSE 34KB
file
README.md 2KB
folder
ios-reversed-headers 文件夹
folder
MediaRemote 文件夹
file
MediaRemote.h 6KB
folder
CoreTelephony 文件夹
file
CTCellularDataPlan.h 452B
file
CTCall.h 3KB
file
CoreTelephony.h 377B
file
CTRegistration.h 4KB
file
CTSIMSupport.h 2KB
file
CTTelephonyCenter.h 910B
file
CTSetting.h 410B
file
CTIndicators.h 562B
folder
MobileInstallation 文件夹
file
MobileInstallation.h 4KB
file
LICENSE.txt 32KB
folder
TelephonyUI 文件夹
file
TelephonyUI.h 462B
folder
MobileWiFi 文件夹
file
MobileWiFi.h 1KB
file
WiFiManager.h 2KB
file
WiFiDeviceClient.h 3KB
file
WiFiNetwork.h 2KB
folder
MobileGestalt 文件夹
file
MobileGestalt.h 11KB
folder
MobileIcons 文件夹
file
MobileIcons.h 554B
folder
BackBoardServices 文件夹
file
BackBoardServices.h 2KB
folder
SpringBoardServices 文件夹
file
SpringBoardServices.h 2KB
file
README.md 154B
folder
CommunicationsFilter 文件夹
file
CommunicationFilterItem.h 1KB
file
CommunicationFilterItemCache.h 248B
file
CommunicationsFilter.h 529B
file
CommunicationsFilterBlockListCache.h 282B
file
CommunicationsFilterBlockList.h 377B
file
.gitignore 259B
folder
WiFiScanner 文件夹
file
.DS_Store 6KB
file
WiFiScanner-Prefix.pch 344B
folder
en.lproj 文件夹
file
InfoPlist.strings 45B
file
main.m 358B
folder
Images.xcassets 文件夹
folder
LaunchImage.launchimage 文件夹
file
Contents.json 442B
folder
AppIcon.appiconset 文件夹
file
icon-58-1.png 3KB
file
icon-120.png 52KB
file
icon-80.png 5KB
file
Contents.json 438B
file
WiFiScanner-Info.plist 1KB
file
AppDelegate.h 270B
folder
UI 文件夹
file
DMInformationViewController.m 4KB
file
DMAboutViewController.m 3KB
file
DMNetworksViewController.m 19KB
file
DMNetworksManager.m 9KB
file
DMNetwork.m 5KB
file
DMConstants.h 1KB
file
DMNetwork.h 2KB
file
DMInformationViewController.h 211B
file
DMAboutViewController.h 212B
file
DMDetailViewController.m 9KB
file
DMDetailViewController.h 334B
file
DMNetworksViewController.h 1023B
file
DMAppDelegate.m 707B
file
DMHierarchyViewController.h 617B
file
DMNetworksManager.h 872B
file
DMHierarchyViewController.m 5KB
file
DMAppDelegate.h 299B
file
AppDelegate.m 3KB
folder
WiFiScanner.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
folder
xcshareddata 文件夹
file
WiFiScanner.xccheckout 1KB
file
contents.xcworkspacedata 156B
file
project.pbxproj 21KB
file
.gitignore 1KB
folder
screenshot 文件夹
file
.DS_Store 6KB
file
2.jpg 123KB
file
1.jpg 325KB
file
4.jpg 83KB
file
3.jpg 118KB
...
zip 文件大小:694.07KB