| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- //
- // MONetTools.m
- // MiMoLive
- //
- // Created by SuperC on 2023/10/17.
- //
- #import "MONetTools.h"
- #import "Reachability.h"
- #import "Reachability+More.h"
- @implementation MONetTools
- + (NSInteger )signalStrengthThan13
- {
- NSInteger signalStrength;
- if(@available(iOS 13.0, *))
- {
- NSArray *arr = [UIApplication sharedApplication].connectedScenes.allObjects;
- UIWindowScene *scene = arr.firstObject;
- UIStatusBarManager *statusBarManager = scene.statusBarManager;
- id statusBar =nil;
- if([statusBarManager respondsToSelector:NSSelectorFromString(@"createLocalStatusBar")])
- {
- UIView*localStatusBar = [statusBarManager performSelector:NSSelectorFromString(@"createLocalStatusBar")];
- if([localStatusBar respondsToSelector:NSSelectorFromString(@"statusBar")])
- {
- statusBar = [localStatusBar performSelector:NSSelectorFromString(@"statusBar")];
- }
- }
-
- if(statusBar)
- {
- id currentData = [[statusBar valueForKeyPath:@"_statusBar"]valueForKeyPath:@"currentData"];
- id cellularEntry = [[Reachability netName] isEqualToString:@"WIFI"]?[currentData valueForKeyPath:@"wifiEntry"]:[currentData valueForKeyPath:@"cellularEntry"];
- if([cellularEntry isKindOfClass:NSClassFromString(@"_UIStatusBarDataWifiEntry")])
- {
- //wifi网络
- signalStrength = [[cellularEntry valueForKey:@"displayValue"]intValue];
- }
- else if([cellularEntry isKindOfClass:NSClassFromString(@"_UIStatusBarDataIntegerEntry")])
- {
- //运营商流量/网络
- signalStrength = [[cellularEntry valueForKey:@"displayValue"]intValue];
- }
- }
- }
-
- return signalStrength;
- }
-
-
- //13以下
- + (NSString *)signalStrengthLess13
- {
- UIApplication *app = [UIApplication sharedApplication];
- NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
- NSString *dataNetworkItemView = nil;
- NSString *signalStrength = @"";
- for (id subview in subviews)
- {
- if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]] && [[Reachability netName] isEqualToString:@"WIFI"] && [Reachability netName].length>0)
- {
- dataNetworkItemView = subview;
- signalStrength = [NSString stringWithFormat:@"%@dBm",[dataNetworkItemView valueForKey:@"_wifiStrengthRaw"]];
- break;
- }
- if ([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]] && ![[Reachability netName] isEqualToString:@"WIFI"] && [Reachability netName].length>0)
- {
- dataNetworkItemView = subview;
- signalStrength = [NSString stringWithFormat:@"%@dBm",[dataNetworkItemView valueForKey:@"_signalStrengthRaw"]];
- break;
- }
- }
-
- return signalStrength;
- }
- @end
|