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 ""
    
        }
    }
  • 相关阅读:
    百度新闻
    Android平台搭建
    9911微博客
    Python基础语法
    虚拟机上CentOS6.9x86_64系统安装教程
    虚拟机下Linux网络配置
    Win2008 Server配置PHP环境
    Win2008 Server下配置安装IIS
    我的第一篇博文
    WCF学习第一晚:基本知识的了解
  • 原文地址:https://www.cnblogs.com/gongyuhonglou/p/6599544.html
Copyright © 2011-2022 走看看