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;
                }
            }
        }
    }
  • 相关阅读:
    C# Nugut CsvHelper 使用
    C# 读写txt
    Js打开QQ聊天对话窗口
    Js 读写Cookies
    js 计算时间差
    C# 读取CSV文件
    使用 SqlBulkCopy 批量插入数据
    sql 添加列并设置默认值
    C# 获取Enum 描述和值集合
    SQL连接其它服务器操作
  • 原文地址:https://www.cnblogs.com/mawenqiangios/p/5884391.html
Copyright © 2011-2022 走看看