zoukankan      html  css  js  c++  java
  • Swift

     
    //  获取状态栏的各种信息 :网络类型,运营商,电池电量,显示的系统时间等信息
    
    import UIKit
    
    enum 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 ""
    
        }
    }
  • 相关阅读:
    Python入门篇-面向对象概述
    Python的序列化与反序列化
    Python的csv文件(csv模块)和ini文件(configparser模块)处理
    使用Cloudera Manager添加Sentry服务
    Python的高级文件操作(shutil模块)
    Python的正则表达式re模块
    正则表达式基础知识
    Python语言防坑小技巧
    Python标准库-数字的处理函数(math模块)
    Python数据结构汇总
  • 原文地址:https://www.cnblogs.com/gongyuhonglou/p/10311535.html
Copyright © 2011-2022 走看看