继承:NSObject
Framework:在UIkit iOS2.0 和之后
UIDevice类提供了一个单例实例代表当前的设备。从这个单例中可以获取设备名称、设备模型和操作系统名称和版本等设备信息。
你也可以使用UIDevice实例检测设备变化的特点,例如物理方向。你要获得当前方向的属性或接收改变通知需要注册UIDeviceOrientationDidChangeNotification通知。在你使用这些技术来获取方向数据,你必须用数据交付使用beginGeneratingDeviceOrientationNotifications 方法。当你不在需要跟踪设备方向,你得调用endGeneratingDeviceOrientationNotifications方法来禁用交付通知。
类似地,你可以使用UIDevice实例获取关于电池状态更改(batteryState属性所描述)和电荷水平(batteryLevel属性所描述)的信息和通知。UIDevice实例还提供了访问接近传感器状态(proximityState 属性所描述)。距离感应器检测用户是否持有设备靠近自己的脸。只有当你需要它的时候,才能电池监视或接近报警。
在iOS 4.2开始,你可以使用playInputClick实例方法键盘输入点击自定义和键盘辅助视图。
//返回一个对象代表当前的设备 可用于iOS 2.0之后
+ (UIDevice *)currentDevice;
//一个布尔值表示对当前设备是否支持多任务。(只读) 可用于iOS 4.0之后
@property(nonatomic, readonly, getter=isMultitaskingSupported) BOOL multitaskingSupported;
//识别设备的名称。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly, strong) NSString *name;
//操作系统上运行设备的名称所代表的接收器。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly, strong) NSString *systemName;
//当前版本的操作系统。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly, strong) NSString *systemVersion;
//设备的模型。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly, strong) NSString *model;
//设备的模型作为一个本地化的字符串。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly, strong) NSString *localizedModel;
//使用当前设备使用界面风格。(只读) 可用于iOS 3.2之后
@property(nonatomic, readonly) UIUserInterfaceIdiom userInterfaceIdiom;
//一个字母数字字符串,惟一地标识一个设备应用的供应商。(只读) 可用于iOS 6.0之后
@property(nonatomic, readonly, strong) NSUUID *identifierForVendor;
//返回设备的物理方向。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly) UIDeviceOrientation orientation;
//一个布尔值来指示接收机产生方向通知(YES)或(NO)。(只读) 可用于iOS 2.0之后
@property(nonatomic, readonly, getter=isGeneratingDeviceOrientationNotifications) BOOL generatesDeviceOrientationNotifications;
//开始面向设备的方向通知更改。可用于iOS 2.0之后
- (void)beginGeneratingDeviceOrientationNotifications;
//结束面向设备的方向通知更改。可用于iOS 2.0之后
- (void)endGeneratingDeviceOrientationNotifications;
//电池充电设备水平(0-1.0)。(只读) 可用于iOS 3.0之后
@property(nonatomic, readonly) float batteryLevel;
//一个布尔值指示是否启用电池监控(YES)或(NO)。 可用于iOS 3.0之后
@property(nonatomic, getter=isBatteryMonitoringEnabled) BOOL batteryMonitoringEnabled;
//电池状态的设备。(只读) 可用于iOS 3.0之后
@property(nonatomic, readonly) UIDeviceBatteryState batteryState;
//一个布尔值表示是否启用了近距离监视(YES)或(NO)。可用于iOS 3.0之后
@property(nonatomic, getter=isProximityMonitoringEnabled) BOOL proximityMonitoringEnabled;
//一个布尔值,指示距离感应器是否接近用户(YES)或(NO)。(只读) 可用于iOS 3.0之后
@property(nonatomic, readonly) BOOL proximityState;
//一个输入点击启用一个输入视图中单击。 可用于iOS 4.2之后
- (void)playInputClick;
1、UIDeviceBatteryState电池供电的设备状态。
typedef enum {
//设备的电池状态不能确定。 可用于iOS 3.0之后
UIDeviceBatteryStateUnknown,
//设备不是插入电源,电池放电。 可用于iOS 3.0之后
UIDeviceBatteryStateUnplugged,
//设备插入电源和电池充电不到100%。 可用于iOS 3.0之后
UIDeviceBatteryStateCharging,
//设备插入电源和电池充电100%。 可用于iOS 3.0之后
UIDeviceBatteryStateFull,
} UIDeviceBatteryState;
2、UIDeviceOrientation 物理设备方向
typedef enum {
//设备的方向不能确定。 可用于iOS 2.0之后
UIDeviceOrientationUnknown,
//设备正直底部。 可用于iOS 2.0之后
UIDeviceOrientationPortrait,
//设备正直顶部的主页按钮。可用于iOS 2.0之后
UIDeviceOrientationPortraitUpsideDown,
//正直和按钮向右边转方向。 可用于iOS 2.0之后
UIDeviceOrientationLandscapeLeft,
//正直和按钮向左边转方向。 可用于iOS 2.0之后
UIDeviceOrientationLandscapeRight,
//设备与地面平行向上面临的屏幕。可用于iOS 2.0之后
UIDeviceOrientationFaceUp,
//设备与地面平行向下面临的屏幕。可用于iOS 2.0之后
UIDeviceOrientationFaceDown
} UIDeviceOrientation;
typedef enum {
//用户界面没有专为而设计
UIUserInterfaceIdiomUnspecified = -1
//用户界面应该专为iPhone和iPod touch设计的。可用于iOS 3.2之后
UIUserInterfaceIdiomPhone,
//用户界面应该为iPad设计的。可用于iOS 3.2之后
UIUserInterfaceIdiomPad,
//用户界面应该设计为苹果电视。可用于iOS 9.0之后
UIUserInterfaceIdiomTV,
//用户界面应该为车内体验而设计的。
UIUserInterfaceIdiomCarPlay,
} UIUserInterfaceIdiom;
1、UIDeviceBatteryLevelDidChangeNotification 电池改变通知 iOS 3.0之后
2、UIDeviceOrientationDidChangeNotification 设备方向改变通知 iOS 2.0之后
3、UIDeviceProximityStateDidChangeNotification 传感器状态发生改变通知 iOS 3.0之后