(私有API)iOS狀態(tài)欄獲取網(wǎng)絡(luò)類型,運營商,電池電量,顯示的系統(tǒng)時間等信息

首先創(chuàng)建StatusBarTool文件
再拷貝下面的代碼
此方法用到了私有API(不建議使用)
.h文件代碼

#import <UIKit/UIKit.h>
typedef enum {
    NetWorkTypeNone = 0,    //未知網(wǎng)絡(luò)或沒有網(wǎng)絡(luò)
    NetWorkType2G   = 1,    //2G網(wǎng)絡(luò)
    NetWorkType3G   = 2,    //3G網(wǎng)絡(luò)
    NetWorkType4G   = 3,    //4G網(wǎng)絡(luò)
    NetWorkTypeWiFi = 5,    //WiFi網(wǎng)絡(luò)
    
} NetWorkType;

@interface StatusBarTool : NSObject

/** 獲取當(dāng)前網(wǎng)絡(luò)狀態(tài) */
+ (NetWorkType)currentNetWorkType;

/** 獲取當(dāng)前網(wǎng)絡(luò)運營商 */
+ (NSString *)serviceCompany;

/** 獲取當(dāng)前電池電量 */
+ (NSString *)currentBatteryPercent;

/** 獲取當(dāng)前時間 */
+ (NSString *)currentTimeString;

@end

.m文件代碼

#import "StatusBarTool.h"

@implementation StatusBarTool

+ (NSString *)currentBatteryPercent
{
    NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
    for (id info in infoArray) {
        if ([info isKindOfClass:NSClassFromString(@"UIStatusBarBatteryPercentItemView")]) {
            NSString *percentString = [info valueForKey:@"percentString"];
            NSLog(@"電量為: %@",percentString);
            return percentString;
        }
    }
    return @"";
}

+ (NetWorkType)currentNetWorkType
{
    NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
    NetWorkType type;
    for (id info in infoArray) {
        if ([info isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
            type = [[info valueForKey:@"dataNetworkType"] intValue];
            NSLog(@"網(wǎng)絡(luò)狀態(tài): %d",type);
            return type;
        }
    }
    return NetWorkTypeNone;
}

+ (NSString *)currentTimeString
{
    NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
    
    for (id info in infoArray) {
        if ([info isKindOfClass:NSClassFromString(@"UIStatusBarTimeItemView")]) {
            NSString *timeString = [info valueForKey:@"timeString"];
            NSLog(@"當(dāng)前時間為:%@",timeString);
            return timeString;
        }
        
    }
    return @"";
}

+ (NSString *)serviceCompany
{
    NSArray *infoArray = [[[[UIApplication sharedApplication] valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
    
    for (id info in infoArray) {
        if ([info isKindOfClass:NSClassFromString(@"UIStatusBarServiceItemView")]) {
            NSString *serviceString = [info valueForKey:@"serviceString"];
            NSLog(@"運營商:%@",serviceString);
            return serviceString;
        }
    }
    return @"";
}

@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容