Swift

来源:互联网 发布:js数组内数字排序 编辑:程序博客网 时间:2024/05/22 10:28
 

//  获取状态栏的各种信息 :网络类型,运营商,电池电量,显示的系统时间等信息import UIKitenum NetWorkType {    case NetworkStatesNone // 没有网络    case NetworkStates2G // 2G    case NetworkStates3G // 3G    case NetworkStates4G // 4G    case NetworkStatesWIFI // WIFI}class StatusBarInfo: NSObject {    // 获取运营商 名称    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 ""    }    // 显示系统时间    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 ""    }    // 检测网络状态    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;                    //无网模式                    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    }    // 获取当前的电量信息    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 ""    }}
原创粉丝点击