iOS开发 获取wifi信号强度

遍历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;

}

}

}

}

- (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);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容