用来备份,方便自己使用,需要的拿去
直接上代码,自己看着办吧😎 也可以选择去GitHub下载☞ZQStatusBarTool
ZQStatusBarTool.h
#import//0 - 无网络 ; 1 - 2G ; 2 - 3G ; 3 - 4G ; 5 - WIFI
typedef NS_ENUM(NSUInteger, NetWorkType) {
NetWorkTypeNone=0,
NetWorkType2G=1,
NetWorkType3G=2,
NetWorkType4G=3,
NetWorkTypeWiFI=5,
};
@interface ZQStatusBarTool : NSObject
/**
*
*
* @return 当前网络类型
*/
+(NetWorkType )currentNetworkType;
/**
*
*
* @return SIM卡所属的运营商(公司)
*/
+(NSString *)serviceCompany;
/**
*
*
* @return 当前电池电量百分比
*/
+(NSString *)currentBatteryPercent;
/**
*
*
* @return 当前时间显示的字符串
*/
+(NSString *)currentTimeString;
/**
*
*
*
@return 当前信号强度
*/
+ (int )getSignalStrength;
@end
ZQStatusBarTool.m
#import "ZQStatusBarTool.h"#import@implementation ZQStatusBarTool
+(NSString *)currentBatteryPercent{
NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
for (id info in infoArray)
{
if ([info isKindOfClass:NSClassFromString(@"UIStatusBarBatteryPercentItemView")])
{
NSString *percentString = [info valueForKeyPath:@"percentString"];
return percentString;
}
}
return @"";
}
+(NetWorkType )currentNetworkType{
NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
NetWorkType type;
for (id info in infoArray)
{
if ([info isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
type = [[info valueForKeyPath:@"dataNetworkType"] integerValue];
NSLog(@"----%lu", (unsigned long)type);
return (NetWorkType)type;
}
}
return NetWorkTypeNone;
}
+(NSString *)currentTimeString{
NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
for (id info in infoArray)
{
if ([info isKindOfClass:NSClassFromString(@"UIStatusBarTimeItemView")])
{
NSString *timeString = [info valueForKeyPath:@"timeString"];
NSLog(@"当前显示时间为:%@",timeString);
return timeString;
}
}
return @"";
}
+(NSString *)serviceCompany{
NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
for (id info in infoArray)
{
if ([info isKindOfClass:NSClassFromString(@"UIStatusBarServiceItemView")])
{
NSString *serviceString = [info valueForKeyPath:@"serviceString"];
NSLog(@"公司为:%@",serviceString);
return serviceString;
}
}
return @"";
}
+ (int )getSignalStrength{
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
UIView *dataNetworkItemView = nil;
for (UIView * subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
dataNetworkItemView = subview;
break;
}
}
int signalStrength = [[dataNetworkItemView valueForKey:@"_wifiStrengthBars"] intValue];
NSLog(@"signal %d", signalStrength);
return signalStrength;
}
@end