iOS UIDevice设备信息
识别设备和操作系统
//获得共享设备实例
open class var current: UIDevice { get }//识别设备的名称
open var name: String { get } // e.g. "My iPhone"//设备类型
open var model: String { get } // e.g. @"iPhone", @"iPod touch"//本地化设备类型
open var localizedModel: String { get } // localized version of model//操作系统名称
open var systemName: String { get } // e.g. @"iOS"//操作系统版本
open var systemVersion: String { get } // e.g. @"4.0"//是否支持多任务
open var isMultitaskingSupported: Bool { get }
设备方向
//返回设备的物理方向
open var orientation: UIDeviceOrientation { get }//是否开启面向设备的方向通知更改
open var isGeneratingDeviceOrientationNotifications: Bool { get }//开始面向设备的方向通知更改
open func beginGeneratingDeviceOrientationNotifications() // nestable//结束面向设备的方向通知更改
open func endGeneratingDeviceOrientationNotifications()
public enum UIDeviceOrientation : Int {case unknown = 0 //设备的方向不能确定case portrait = 1 //设备竖向朝上case portraitUpsideDown = 2 //设备竖向朝下case landscapeLeft = 3 //设备横向朝左case landscapeRight = 4 //设备横向朝右case faceUp = 5 //设备平放朝上case faceDown = 6 //设备平放朝下
}
extension UIDeviceOrientation {public var isPortrait: Bool { get }//竖向public var isLandscape: Bool { get }//横向public var isFlat: Bool { get }//平放public var isValidInterfaceOrientation: Bool { get }
}
设备方向监测
//开启监听设备方向
UIDevice.current.beginGeneratingDeviceOrientationNotifications()
//注册监听设备方向事件
NotificationCenter.default.addObserver(self, selector: #selector(orientationDidChange), name: UIDevice.orientationDidChangeNotification, object: nil)
//关闭监听设备方向
UIDevice.current.endGeneratingDeviceOrientationNotifications()
//注销监听设备方向事件
NotificationCenter.default.removeObserver(self, name: UIDevice.orientationDidChangeNotification, object: nil)
@objc func orientationDidChange() {//竖屏print("isPortrait", UIDevice.current.orientation.isPortrait)//横屏print("isLandscape", UIDevice.current.orientation.isLandscape)//平放print("isFlat", UIDevice.current.orientation.isFlat)//竖起print("isValidInterfaceOrientation", UIDevice.current.orientation.isValidInterfaceOrientation)
}
设备的电池状态
//电量
open var batteryLevel: Float { get }//电池状态
open var batteryState: UIDevice.BatteryState { get }//开启电池监测
open var isBatteryMonitoringEnabled: Bool
UIDeviceBatteryState电池供电的设备状态
public enum BatteryState : Int {case unknown = 0 //设备的电池状态不能确定case unplugged = 1 //设备不是插入电源,电池放电case charging = 2 //设备插入电源和电池充电不到100%case full = 3 //设备插入电源和电池充电100%
}
电池电量监测
//开启电量监测
UIDevice.current.isBatteryMonitoringEnabled = true
//注册电量监测事件
NotificationCenter.default.addObserver(self, selector: #selector(batteryDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
@objc func batteryDidChange() {print("batteryLevel", UIDevice.current.batteryLevel)
}