iOS开发之获取WIFI信号强度
2020-01-15 11:50
3207 查看
虽然各种直接获取信号强度的api都被封杀了。但是还有一个另类的黑魔法可以获取到。那就是遍历UIStatusBar了
- (void)getSignalStrength{ UIApplication *app = [UIApplication sharedApplication]; NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews]; NSString *dataNetworkItemView = nil; for (id subview in subviews) { if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) { dataNetworkItemView = subview; break; } } int signalStrength = [[dataNetworkItemView valueForKey:@"_wifiStrengthBars"] intValue]; NSLog(@"signal %d", signalStrength); }
当然我们还可以遍历UIStatusBar 获取到网络连接类型
- (void)getNetworkType { UIApplication *app = [UIApplication sharedApplication]; NSArray *subviews = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews]; for (id subview in subviews) { if ([subview isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) { int networkType = [[subview valueForKeyPath:@"dataNetworkType"] intValue]; switch (networkType) { case 0: NSLog(@"NONE"); break; case 1: NSLog(@"2G"); break; case 2: NSLog(@"3G"); break; case 3: NSLog(@"4G"); break; case 5: { NSLog(@"WIFI"); } break; default: break; } } } }
转载于:https://www.cnblogs.com/starainDou/p/5781130.html
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- iOS开发之获取WIFI信号强度
- iOS开发之获取WIFI信号强度
- iOS开发之获取WIFI信号强度
- iOS开发-获取子视图坐标系中Point、Rect在父视图坐标系中的实际值
- iOS开发 - 通过代码获取沙盒启动图片
- iOS项目开发实战——获取当前的UUID(通用唯一识别码)
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
- IOS源码开发获取当前的流量信息
- iOS开发之网络编程--获取文件的MIMEType
- iOS开发技巧:获取手机应用程序图片素材
- ios开发之获取目录内容
- iOS 获取系统wifi列表,wifi信号强度,并给wifi设置密码,标签(副标题)
- Unity3D开发之“获取IOS设备所在的国家代码"
- ios开发获取验证码按钮读秒效果
- iOS动态获取键盘高度实现流畅的键盘输入框开发
- iOS开发小技巧--获取自定义的BarButtonItem中的自定义View的方法(customView)
- iOS开发----地图与导航--定位和位置信息获取
- iOS开发 - 获取当前网络状态
- iOS越狱开发 SandBox中获取root权限
- iOS开发>学无止境 - 获取经纬度及城市名称