UIDevice

记录UIDevice的属性和方法

    UIDevice *device = [UIDevice currentDevice];
    //属性都是readOnly
    //设备名称 iPhone 11
    NSLog(@"%@",device.name);
    //系统名称 iOS
    NSLog(@"%@",device.systemName);
    //系统版本 13
    NSLog(@"%@",device.systemVersion);
    //设备类型 iPhone
    NSLog(@"%@",device.model);
    //设备类型的本地实例化名称
    NSLog(@"%@",device.localizedModel);
    //当前设备上使用的接口样式
    //Unspecified未指定/Phone手机/Pad/TV/CarPlay  5种方式
    NSLog(@"%ld",(long)device.userInterfaceIdiom);
    //设备的UUID
    NSLog(@"%@",device.identifierForVendor);
    //返回设备的物理方向
    //横屏/竖屏 / 设备面朝上/朝下 等
    NSLog(@"%ld",(long)[device orientation]);
    //开始获取设备的物理方向
    [device beginGeneratingDeviceOrientationNotifications];
    //设备接受者是否开启获取设备方向的通知
    NSLog(@"%d",[device isGeneratingDeviceOrientationNotifications]);
    //结束获取设备的物理方向
    [device endGeneratingDeviceOrientationNotifications];
    //设备的电池电量
    NSLog(@"%.f",device.batteryLevel);
    //是否启用电池监视(是)或不(否)
    NSLog(@"%d",device.isBatteryMonitoringEnabled);
    //设备电池状态
    //未知、不插电、插电、满电  4种
    NSLog(@"%ld",(long)device.batteryState);
    //是否接近传感器
    //如果没有接近,总是返回NO
    NSLog(@"%d",device.proximityState);
    //是否监听传感器状态改变
    NSLog(@"%d",device.isProximityMonitoringEnabled);
    //仅当屏幕上出现启用输入视图且用户启用了输入单击时,才播放单击。暂未用到
    [device playInputClick];
    //监听通知名称
    //UIDeviceOrientationDidChangeNotification 物理方向发生改变
    //UIDeviceBatteryStateDidChangeNotification 电池状态发生改变
    //UIDeviceBatteryLevelDidChangeNotification 电池电量发生改变
    //UIDeviceProximityStateDidChangeNotification 传感器状态发生改变
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(respondsToDeviceOrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(respondsToDeviceBatteryStateDidChange:) name:UIDeviceBatteryStateDidChangeNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(respondsToDeviceBatteryLevelDidChange:) name:UIDeviceBatteryLevelDidChangeNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(respondsToDeviceProximityStateDidChange:) name:UIDeviceProximityStateDidChangeNotification object:nil];

其中,下面这个监听物理方向改变的通知有一个坑

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(respondsToDeviceOrientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil];

可以参考iOS开发中屏幕旋转的那些坑

你可能感兴趣的:(UIDevice)