- //获得共享设备实例
- 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)
- }