UIDevice

通过UIDevice类可以获取iOS设备的状态信息,例如设备的名称、操作系统版本号、UUID等基本信息,同时还能够获取诸如电池状态、设备朝向等信息。借助通知机制,当系统状态发生改变时,可以通知应用做出对应的响应动作。

1.获取设备的基本信息

1.获取设备的基本信息
// 设备的名称
@property(nonatomic, readonly, strong) NSString *name;
// 设备的类型,例如iPhone、iPod touch。
@property(nonatomic, readonly, strong) NSString *model;
@property(nonatomic, readonly, strong) NSString *localizedModel;
//操作系统版本号。
@property(nonatomic, readonly, strong) NSString *systemVersion;

2.获取设备的UUID
// 获取当前设备对象
UIDevice *device = [UIDevice currentDevice];
// 获取设备的UUID
NSLog(@"identifierForVendor: %@", device.identifierForVendor.UUIDString);

2 获取电池信息

当需要获取iOS设备的电池信息时,需要首先打开batteryMonitoringEnabled属性,然后就可以通过batteryState以及batteryLevel来获取电池的状态信息。

// 是否开启电池监控,默认为NO。
@property(nonatomic, getter=isBatterMonitoringEnabled) BOOL batterMonitoringEnabled;
// 电池电量,取值0~1.0。
@property(nonatomic, readonly) float batteryLevel;
// 电池状态。UIDeviceBatteryState有4种状态,分别为
UIDeviceBatteryStateUnplugged(未充电)、
UIDeviceBatteryStateCharging(充电中)、
UIDeviceBatteryStateFull(已充满)、
UIDeviceBatteryStateUnknown(未知状态)。
@property(nonatomic, readonly)UIDeviceBatteryState batteryState;

在UIKit框架中,提供了用于电池状态变更时的通知——UIDeviceBatteryStateDidChangeNotification,当电池状态发生变更时,系统会给观察者发送通知。需要注意的是,在使用通知之前,需要预先在通知中心注册。

示例

3 接近传感器

在iPhone的正面顶部,提供了接近传感器(proximityState)。例如,在接听电话时,当用户的脸部接触手机顶部或者人为使用手指挡住iPhone顶部时,屏幕会自动熄灭,从而避免误操作。通过UIDevice类中的proximityState属性可以获取当前接近传感器的状态。

1.接近传感器相关属性
// 接近传感器是否生效,默认情况下不生效。
@property(nonatomic, getter = isProximitMonitoringEnabled) BOOL proximitMonitoringEnabled;
// 获取接近传感器的工作状态。
@property(nonatomic, readonly) BOOL ptoximityState;
// 系统提供的内置通知,当传感器工作状态发送改变时会触发通知。
UIKIT_EXTERN NSString *const UIDeviceProximityStateDidChangedNotification;

示例

4 方向传感器

由于通过iPhone设备中的运动传感器,可以得到设备当前的加速度、磁力计以及陀螺仪数据,结合这些传感器提供的数据能够获取设备当前的方向信息(orientation)。在UIDevice类中,对设备的方向信息进行了一次封装,不需要开发者通过计算传感器数据来获取设备朝向,而是直接通过UIDevice类中的orientation属性即可获取设备当前的朝向信息。

获取设备朝向信息。UIDeviceOrientation类型有6个取值,用于标识设备的方向信息。
@property(nonatomic, readonly) UIDeviceOrientation orientation;

// 获取设备方向改变通知。
UIKIT_EXTERN NSString *const UIDeviceOrientationDidChangeNotification;
// 当需要获取设备方向改变通知之前,需要提前调用beginGeneratingDeviceOrientationNotifications方法。
-(void)beginGeneratingDeviceOrientionNotification;
// 不需要调用设备方向改变通知时,调用该方法关闭通知。
-(void)endGeneratingDeviceOrientationNotification;

示例

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值