iOS开发之──传感器使用 (转载)
在实际的应用开发中,会用到传感器,下面首先介绍一下iphone4的传感器,然后对一些传感器的开发的API作一简单介绍。
在实际的应用开发中,会用到传感器,下面首先介绍一下iphone4的传感器,然后对一些传感器的开发的API作一简单介绍
一、 iPhone 4的传感器技术
进入正题,iPhone 4到底用上了哪些传感器呢?
1) 影像传感器
简单说就是相机镜头,由于只牵涉到微光学与微电子,没有机械成份在里头,即便加入马达、机械驱动的镜头,这类的机械零件也过大,不到「微」的地步,所以此属于光电半导体,属于光学、光电传感器。
2) 亮度传感器
外界并不清楚iPhone 4用何种方式感应环境光亮度,而最简单的实现方式是用一个光敏电阻,或者,iPhone 4直接用影像传感器充当亮度侦测,也是可行。无论如此,此亦不带机械成份,属于光电类传感器,甚至可能不是微型的,只是一般光学、光电传感器。
3) 磁阻传感器
简单讲就是感测地磁,这样讲还是太学名,感应地磁就是指南针原理,将这种地磁感应电子化、数字化,就称为数字指南针(Digital Compass)。老实说,数字指南针技术比较偏玩具性,因为用来感测地磁的磁阻传感器,很容易受环境影响(如高压电塔旁、马达旁),必须时时校正才有 用。
磁阻传感器目前没有被视为热门的MEMS组件,有些MEMS组件会追加整合磁阻感测能力(如ADI的产品,且目标应用是鱼雷用途),但一般而言磁阻传感器尚无迫切微型化的迹象。
4) 近接传感器
近接传感器的实现技术非常多种,可以是红外线(例如便利商店的自动门、男生公共厕所的自动冲水器)、可以是超音波、雷射等,太多太多。同样的,Apple没讲,我们只能乱猜或尽可能网搜,不过,近接传感器也没有迫切微型化的需要,不在热门MEMS组件之列。
5) 声波传感器
学名声波传感器,俗名麦克风。是的,iPhone 4 为了强化声音质量,使用2组麦克风与相关运算来达到降噪(降低噪音)的效果,这种技术称为数组麦克风(Array MIC),事实上早在Apple实行之前,2004年Wintel就已经在PC上提出过,差别是Apple用于手机,Wintel用于PC。
麦克风需要微型化吗?是的,需要,相当需要,且使用一个以上的麦克风,麦克风的体积缩小需求就更迫切,麦克风也牵涉到机械(声波会使微型机械振动),并将机械振动转换成电子信号,因此微型化的麦克风,是个不折不扣的MEMS传感器。
6) 加速度传感器
俗称加速规、G-Sensor,可以感应物体的加速度性。事实上加速度传感器的实现方式也是许多种,MEMS只是手法之一,用MEMS实现加速度传感器确实是目前的趋势。
加速度传感器一般有「X、Y两轴」与「X、Y、Z三轴」两种,两轴多用于车、船等平面移动为多,三轴多用于飞弹、飞机等飞行物。而不用多说,Wii遥控器也是用三轴,iPhone可以感应实体翻转而自动对应翻转画面,也是靠这个传感器。
7) 角加速度传感器
更简单讲就是陀螺仪,陀螺仪实现技术有机械式与光学(红外线、雷射)式,第六项的加速度传感器比较能感测平移性,但对于物体有个轴心,进行角度性的移动, 则其感应效果不如陀螺仪好,所以许多应用多半是混何使用加速度传感器与陀螺仪,而今iPhone 4也从善如流。不过,iPhone 4确实是率先使用陀螺仪的手机。
二、常用使用方法
在我们应用中应用最多有加速度传感器,角度加速度伟感器,这两个主要应用在需要重力感应的应用中,在公开的API中UIAccelerometer类实现相应的功能;磁阻传感器主要应用于需要指示方向的应用中,在公开的API中CLLocationManager类实现相应的功能,上述几个使用方法今天不作介绍;而影像传感器和亮度传感器的使用方法,是否有公开的API,限于本人的学术水平,还未查到使用方法;今天主要介绍近接传感器的用法,代码如下:
- [[UIDevice currentDevice] setProximityMonitoringEnabled:YES];
 - [[NSNotificationCenter defaultCenter] addObserver:self
 - selector:@selector(sensorStateChange:)
 - name:@"UIDeviceProximityStateDidChangeNotification"
 - object:nil];
 - -(void)sensorStateChange:(NSNotificationCenter *)notification;
 - {
 - if ([[UIDevice currentDevice] proximityState] == YES) {
 - NSLog(@"Device is close to user");
 - //在此写接近时,要做的操作逻辑代码
 - }else{
 - NSLog(@"Device is not close to user");
 - }
 - }
 
iOS开发之──传感器使用 (转载)的更多相关文章
- iOS开发之──传感器使用
		
本文转载至 http://mobile.51cto.com/iphone-423219.htm 在实际的应用开发中,会用到传感器,下面首先介绍一下iphone4的传感器,然后对一些传感器的开发的API ...
 - UE4 IOS 开发之传感器输入
		
Iphone的传感器包括陀螺仪.加速计等. UE4提供了4个按键来收集这些传感器的3维数据.具体位置:ProjectSettings->Input. 其中Tilt数据可以反映Iphone目前的物 ...
 - iOS开发中的Html解析方法
		
iOS开发中的Html解析方法 本文作者为大家介绍了在iOS开发中的Html解析方法,并同时提供了Demo代码的下载链接,Demo 解析了某个网站(具体可在代码中查看)的html网页,提取了图片以及标 ...
 - 盘点国内程序员不常用的热门iOS第三方库:看完,还敢自称”精通iOS开发”吗?【转载】
		
综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZ ...
 - (转载)Mac和iOS开发资源汇总—更新于2013-07-19
		
(转载)http://beyondvincent.com/2013/07/18/resources-for-mac-and-ios-developers/ 小引 本文主要汇集一些苹果开发的资源,会经常 ...
 - iOS开发中遇到的一些问题及解决方案【转载】
		
iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // // MyScrollView.m // Creat ...
 - [转载]iOS开发之手势识别
		
感觉有必要把iOS开发中的手势识别做一个小小的总结.在上一篇iOS开发之自定义表情键盘(组件封装与自动布局)博客中用到了一个轻击手势,就是在轻击TextView时从表情键盘回到系统键盘,在TextVi ...
 - 转载:iOS开发之让你的应用“动”起来
		
在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画 ...
 - iOS开发工具篇-AppStore统计工具 (转载)
		
随着iOS开发的流行,针对iOS开发涉及的方方面面,早有一些公司提供了专门的解决方案或工具.这些解决方案或工具包括:用户行为统计工具(友盟,Flurry,Google Analytics等), App ...
 
随机推荐
- Windows Azure Service Bus (3) 队列(Queue) 使用VS2013开发Service Bus Queue
			
<Windows Azure Platform 系列文章目录> 在之前的Azure Service Bus中,我们已经介绍了Service Bus 队列(Queue)的基本概念. 在本章中 ...
 - 用Latex写学术论文:作者(Author)&摘要(Abstract)
			
标题&作者 1.标题 \title{} "Line breaks (\\) may be used to equalize the length of the title lines ...
 - jQuery 3.1 API中文文档
			
jQuery 3.1 API中文文档 一.核心 1.1 核心函数 jQuery([selector,[context]]) 接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素. jQ ...
 - aspNet各种模块介绍
			
For browsers that do not support HTML5, you can use Modernizr. Modernizr is an open-source JavaScrip ...
 - 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
			
[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...
 - Maximum length of a table name in MySQL
			
http://dev.mysql.com/doc/refman/5.7/en/identifiers.html The following table describes the maximum le ...
 - 修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
			
注意:XE7 已修正这个问题. Delphi Firemonkey TListView 提供了搜寻的功能,但在 XE6 以前的版本,可以显示右边的清除按钮,在 XE6 确消失了,这里提供一个修正的方案 ...
 - Hack语言特性之类型化
			
Hack最基础的特性就是类型标注.PHP5已经开始支持对象的类型化,PHP7也提供了标量类型化声明.Hack提供了全面的类型标注支持,与其typecher配合使用,还可以实现快速.前置静态类型验证. ...
 - Redis配置集群一(window)
			
因为接下来的项目要使用到redis作为我们项目的缓存,所以就花了一天时间研究了一下redis的一些用法,因为没转linux虚拟机,所以就决定先研究一下windows版本的redis集群.主要是redi ...
 - mysql和oracle  jdbc连接
			
加载驱动. Class.forName("oracle.jdbc.driver.OracleDriver"); 1 创建连接. Connection con = DriverMan ...