來(lái)獲取狀態(tài)欄的珠增,運(yùn)營(yíng)商,網(wǎng)絡(luò)砍艾,時(shí)間蒂教,電量的信息。
swift代碼上代碼:
//
// StatusBarInfo.swift
// swift_show
//
// Created by Deki on 16/8/7.
// Copyright ? 2016年 Deki. All rights reserved.
// 獲取狀態(tài)欄的各種信息 :網(wǎng)絡(luò)類型辐董,運(yùn)營(yíng)商悴品,電池電量,顯示的系統(tǒng)時(shí)間等信息
import UIKit
enum NetWorkType {
case NetworkStatesNone // 沒(méi)有網(wǎng)絡(luò)
case NetworkStates2G // 2G
case NetworkStates3G // 3G
case NetworkStates4G // 4G
case NetworkStatesWIFI // WIFI
}
class StatusBarInfo: NSObject {
// 獲取運(yùn)營(yíng)商 名稱
class func serviceCompany() -> String {
let array :NSArray = (UIApplication.sharedApplication().valueForKeyPath("statusBar")?.valueForKeyPath("foregroundView")?.subviews)!
for info in array {
if info.isKindOfClass(NSClassFromString("UIStatusBarServiceItemView")!) {
let serverStr:String = info.valueForKeyPath("serviceString") as! String
return serverStr
}
}
return ""
}
// 顯示系統(tǒng)時(shí)間
class func currentTimeString() -> String {
let array :NSArray = (UIApplication.sharedApplication().valueForKeyPath("statusBar")?.valueForKeyPath("foregroundView")?.subviews)!
for info in array {
if info.isKindOfClass(NSClassFromString("UIStatusBarTimeItemView")!) {
let timeStr:String = info.valueForKeyPath("timeString") as! String
return timeStr
}
}
return ""
}
// 檢測(cè)網(wǎng)絡(luò)狀態(tài)
class func currentNetworkType() -> NetWorkType {
let array :NSArray = (UIApplication.sharedApplication().valueForKeyPath("statusBar")?.valueForKeyPath("foregroundView")?.subviews)!
var states :NetWorkType = .NetworkStatesNone
for info in array {
if info.isKindOfClass(NSClassFromString("UIStatusBarDataNetworkItemView")!) {
let networkType = info.valueForKeyPath("dataNetworkType")!.integerValue
switch (networkType) {
case 0:
states = .NetworkStatesNone;
//無(wú)網(wǎng)模式
break;
case 1:
states = .NetworkStates2G;
break;
case 2:
states = .NetworkStates3G;
break;
case 3:
states = .NetworkStates4G;
break;
case 5:
states = .NetworkStatesWIFI;
break;
default:
break;
}
}
}
return states
}
// 獲取當(dāng)前的電量信息
class func currentBatteryPercent() -> String {
let array :NSArray = (UIApplication.sharedApplication().valueForKeyPath("statusBar")?.valueForKeyPath("foregroundView")?.subviews)!
for info in array {
if info.isKindOfClass(NSClassFromString("UIStatusBarBatteryPercentItemView")!) {
let presentStr:String = info.valueForKeyPath("percentString") as! String
return presentStr
}
}
return ""
}
}