iOS 状态栏数据获取(服务商,网络状态,信号,电量,IP,WiFi)

今天有时间想对iPhone 基本信息获取做一简单总结,在写的时候发现一段很实用的代码,特意贴出来做个记录,也供大家使用:

NSString * result;
NSArray *statusBarSubviews = [[[[[UIApplication sharedApplication] valueForKey:@"_statusBar"] subviews] lastObject] subviews];

            for (id subview in statusBarSubviews) {

                if ([subview isKindOfClass:NSClassFromString(@"UIStatusBarBatteryPercentItemView")])
                {

                    //系统方法直接通过键值对拿到100%
                    result = [subview valueForKey:@"_percentString"];

                }

            }

整段代码就是这些,完全没有设么需要理解的。
用上面方法所拿到的statusBarSubviews 是一个信息集合数组,我们需要哪个信息就用

if ([subview isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")])
                {

                    //系统方法直接通过键值对拿到100%
                    result = [subview valueForKey:@"dataNetworkType"];

                }

做对应判断即可,然后取相应键值对判断:
例如:,dataNetworkType类型是NSNumber,值是5。
经过测试,发现,可能的值为 1,2,3,5 分别对应的网络状态是2G、3G、4G及WIFI。 当没有网络时,隐藏UIStatusBarDataNetworkItemView,无法获取dataNetworkType值。

最后贴出一张截图是感觉比较有用的几个信息类说明,希望能帮到大家:

对应信息说明.png

附详细代码:https://github.com/guanalongaaa/iPhone-information.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值