zoukankan      html  css  js  c++  java
  • iOS开发之获取WIFI信号强度

    虽然各种直接获取信号强度的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;
                }
            }
        }
    }
  • 相关阅读:
    <Android 应用 之路> 聚合数据SDK
    AngularJS所有版本下载地址
    <Android 应用 之路> 天气预报(三)
    <Android 应用 之路> 天气预报(二)
    Java集合框架—Set
    HBase数据模型(2)
    HBase数据模型(1)
    ESP8266串口WiFi扩展板详解
    Arduino ESP8266编程深入要点
    <Android Framework 之路>多线程
  • 原文地址:https://www.cnblogs.com/starainDou/p/5781130.html
Copyright © 2011-2022 走看看