- (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

    }

}

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

  1. iOS设置竖屏,播放视频可以任性旋转的解决方法,亲测可用

    之前在网上找了很多方法,都是强制横屏,但是如果设备关闭旋转锁定,强制横屏后把设备竖立起来,播放器也会跟着竖过来,但是就回不去了.现在项目要求让app默认都是竖屏,只有在全屏播放的时候可以自由旋转,于是 ...

  2. Js获取操作系统版本 && 获得浏览器版本

    //利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...

  3. Axure RP 9版本最新版授权码和密钥 亲测可用

    分享Axure RP 9版本最新版授权码和密钥 亲测可用 声明:以下资源的获取来源为网络收集,仅供学习参考,不作商业用途,如有侵权请联系博主删除,谢谢! 自新的Axure RP 9.0 Beta版发布 ...

  4. JProfiler 9版本注册码(亲测可用!!!)

    JProfiler 9版本注册码(亲测可用!!!) 按默认选择“Single or evaluation license” ,Name 和 Company 随意填!!! JProfiler 9.2  ...

  5. Eclipse4.5 Mars版本安装activiti插件 亲测可用

    Eclipse4.5 Mars版本安装activiti插件 亲测可用 学习使用activiti 在线安装一直,国内的网络真心的是 很苦 啊:在茫茫网络上面找到了很多插件的离线包 终于找到一个可以使用的 ...

  6. XE7 & IOS开发之开发账号(1):开发证书、AppID、设备、开发授权profile的申请使用,附Debug真机调试演示(XCode所有版本通用,有图有真相)

    网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...

  7. NTDLL未文档化函数RtlGetNtVersionNumbers获取操作系统版本

    作为新手,对获取操作系统版本号好奇过,因为曾经假象过一个场景:自己的程序在windows xp环境下编译,在windows 2003, windows 7,windows 8是否需要提权或者兼容处理, ...

  8. windows和linux下如何远程获取操作系统版本和主机名

    远程获取windows和linux操作系统版本和主机名需要具备以下条件: 假设 主机A(windows 7),ip:192.168.12.2 主机B(centos 6.3),ip:192.168.12 ...

  9. WindowsAPI使用详解——GetVersion|GetVersionEx 获取操作系统版本和名称

      Windows API 中有两个函数可以得到系统版本信息:GetVersion和GetVersionEx.      GetVersion这个函数曾经困扰了很多程序员,其本来设计的是在DWORD返 ...

随机推荐

  1. 使用ajaxfileupload.js实现文件上传

    ajaxFileUpload是一个异步上传文件的jQuery插件 语法:$.ajaxFileUpload([options]) options参数说明: 1.url  上传处理程序地址. 2,file ...

  2. 'scrapyd-deploy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    在windows上使用scrapyd-client 安装后,并不能使用相应的命令'scrapyd-deploy' 需要在"C:\Python27\Scripts" 目录下 增加sc ...

  3. 一张关于docker版本的图

    今天安装了windows内测版的docker,的确是是把vitualbox换成了hyper-v,如左图,server的os 还是linux.不过之前在nanoserver上装的docker 也的确是原 ...

  4. OC基础--对象做参数在方法间传递

    剧情描述: 美国大兵抗把汉阳造 拿着5个弹夹(每个弹夹5发子弹) 带着弟兄们干架 子弹打完了就求救 类: 士兵: 属性: 姓名(_name) 身高(_height) 体重(_weight) 行为: 开 ...

  5. 轮播图适应代码jQ

    (function(){ var i = 0; var time ; $('.page-size').html('1'); var obj = $('.xst-scroll>li'); var ...

  6. as3延迟处理

    查找关键字“flashplayer 弹性跑道” 每当一帧即将走完,FlashPlayer就要做些总结性工作(一次性地汇总变化),把这一帧当中发生的变化拿出来展示(渲染)一下. 如果它处理的事情少,工作 ...

  7. 使用Volley执行网络数据传输

    首先需要实例化一个RequestQueue RequestQueue queue = Volley.newRequestQueue(this); 然后是根据提供的URL请求字符串响应 String u ...

  8. android 测试 Monkey 和 MonkeyRunner 的使用

    一.Monkey的使用 Monkey使用起来比较简单,简而言之就是模拟手机点击效果,随机发送N个点击动作给手机,主要对于程序的稳定和承受压力的测试. 1.首先连接上你的手机或者启动模拟器: 2.运行C ...

  9. mysql启动报错The server quit without updating PID file

    现网mysql无法启动是很让人头疼的,数据很有可能恢复不了,解决方法如下: 查看mysql目录下的日志,根据日志来锁定错误原因(mysql的错误日志很抽象) a.如果日志不能提供任何帮助则可进行以下步 ...

  10. VMware下利用ubuntu13.04建立嵌入式开发环境之三

    系统环境建立完成后就要安装和配置嵌入式开始需要的工具和服务. 一般我们在交叉编译是需要的服务有:smb.tftp.telnet.nfs.ssh和x11等.下面一步步,介绍如何安装这些服务. 一.smb ...