IOS设备 UIDevice 获取操作系统 版本 电量 临近手机触发消息检测 (真机亲测可用)

时间:2022-07-07 10:46:46
- (void)viewDidLoad

{

    [super viewDidLoad];

    // 操作系统

    NSString * osName  =[[UIDevice currentDevice]systemName];

    // 操作系统版本

    NSString * systemVersion  =[[UIDevice currentDevice]systemVersion];

    NSLog(@"os =%@ ",osName);

    NSLog(@"version =%@",systemVersion);

    // IOS设备模型

    NSString *iosmodel  =[[UIDevice currentDevice]model];

    NSLog(@"%@",iosmodel);

    //  电量的范围从0.0(全部泻出)-1.0(100%)在访问这个属性之前要确保batterymonitoring这个属性是可用的

    // 电量查询

    float batteryLevel =  [UIDevice currentDevice].batteryLevel;

    NSLog(@"%f",batteryLevel);

    // 检测电池状态

    UIDeviceBatteryState batteryState = [[UIDevice currentDevice]batteryState];

    //    有如下几个状态

    //  UIDeviceBatteryStateUnknown 0  未识别         0

    //  UIDeviceBatteryStateUnplugged, 充电中         1

    //  UIDeviceBatteryStateCharging,  少于100%       2

    //  UIDeviceBatteryStateFull,      充满了         3

    NSLog(@"%d",batteryState);

    // 检测是否支持多任务处理

    BOOL support =[[UIDevice currentDevice]isMultitaskingSupported];

    if(support)

    {

        NSLog(@"supportmultiTask");

    }

    else

    {

        NSLog(@"don,t supportmultiTask");

    }

     // 检测当前设备方向是否改变

     // YES 方向改变

     // NO  方向未改变

     BOOL status =[UIDevice currentDevice].generatesDeviceOrientationNotifications ;

     NSLog(@"%d",status);

     // 开始改变设备方向 如果需要在改变方向的时候处理一些事情可以重写这个方法

     // [[UIDevice currentDevice]beginGeneratingDeviceOrientationNotifications ];

     // 结束改变设备方向 同上

     // [[UIDevice currentDevice]endGeneratingDeviceOrientationNotifications];

     // 临近状态检测

     // 当你的身体靠近iPhone而不是触摸的时候,iPhone将会做出反应。(需要一定的面的影射,约5mm左右的时候就会触发)

     // YES 临近  消息触发

     // NO

    BOOL proximityState = [[UIDevice currentDevice]proximityState];

    NSLog(@"%d",proximityState);

    UIDevice *device =  [UIDevice currentDevice ];

    device.proximityMonitoringEnabled=YES; // 允许临近检测

    // 临近消息触发

    [[NSNotificationCenter defaultCenter] addObserver:self

                                             selector:@selector(proximityChanged:)

                                                name:UIDeviceProximityStateDidChangeNotification object:device];

}

 // 临近手机消息触发

- (void) proximityChanged:(NSNotification *)notification {

    UIDevice *device = [notification object];

    NSLog(@"In proximity:%i",device.proximityState);

    if(device.proximityState==){

        //do something

    }

}