识别设备和操作系统
Swift
//获得共享设备实例
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 }
设备方向
Swift
//返回设备的物理方向
open var orientation: UIDeviceOrientation { get }
//是否开启面向设备的方向通知更改
open var isGeneratingDeviceOrientationNotifications: Bool { get }
//开始面向设备的方向通知更改
open func beginGeneratingDeviceOrientationNotifications() // nestable
//结束面向设备的方向通知更改
open func endGeneratingDeviceOrientationNotifications()
Swift
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 //设备平放朝下
}
Swift
extension UIDeviceOrientation {
public var isPortrait: Bool { get }//竖向
public var isLandscape: Bool { get }//横向
public var isFlat: Bool { get }//平放
public var isValidInterfaceOrientation: Bool { get }
}
设备方向监测
Swift
//开启监听设备方向
UIDevice.current.beginGeneratingDeviceOrientationNotifications()
//注册监听设备方向事件
NotificationCenter.default.addObserver(self, selector: #selector(orientationDidChange), name: UIDevice.orientationDidChangeNotification, object: nil)
Swift
//关闭监听设备方向
UIDevice.current.endGeneratingDeviceOrientationNotifications()
//注销监听设备方向事件
NotificationCenter.default.removeObserver(self, name: UIDevice.orientationDidChangeNotification, object: nil)
Swift
@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)
}
设备的电池状态
Swift
//电量
open var batteryLevel: Float { get }
//电池状态
open var batteryState: UIDevice.BatteryState { get }
//开启电池监测
open var isBatteryMonitoringEnabled: Bool
UIDeviceBatteryState电池供电的设备状态
Swift
public enum BatteryState : Int {
case unknown = 0 //设备的电池状态不能确定
case unplugged = 1 //设备不是插入电源,电池放电
case charging = 2 //设备插入电源和电池充电不到100%
case full = 3 //设备插入电源和电池充电100%
}
电池电量监测
Swift
//开启电量监测
UIDevice.current.isBatteryMonitoringEnabled = true
//注册电量监测事件
NotificationCenter.default.addObserver(self, selector: #selector(batteryDidChange), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
Swift
@objc func batteryDidChange() {
print("batteryLevel", UIDevice.current.batteryLevel)
}