zoukankan      html  css  js  c++  java
  • IOS设备 UIDevice 获取操作系统 版本 电量 临近手机触发消息检测 (真机亲测可用)

    - (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==1){
    
           
    
            //do something
    
        }
    
    }
    
     
  • 相关阅读:
    [HNOI2002]营业额统计
    HDU 1374
    HDU 3345
    HDU 2089
    Graham扫描法
    Codeforces 1144D Deduction Queries 并查集
    Codeforces 916E Jamie and Tree 线段树
    Codeforces 1167F Scalar Queries 树状数组
    Codeforces 1167E Range Deleting
    Codeforces 749E Inversions After Shuffle 树状数组 + 数学期望
  • 原文地址:https://www.cnblogs.com/llios/p/3922098.html
Copyright © 2011-2022 走看看