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 ...
随机推荐
- 第16/24周 SQL Server 2014中的基数计算
大家好,欢迎回到性能调优培训.上个星期我们讨论在SQL Server里基数计算过程里的一些问题.今天我们继续详细谈下,SQL Server 2014里引入的新基数计算. 新基数计算 SQL Serve ...
- 页面置换算法 - FIFO、LFU、LRU
缓存算法(页面置换算法)-FIFO. LFU. LRU 在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO. LFU ...
- Mac下github项目检出与提交
项目检出 如果你的git还没有代码仓库,可以用过git的代码仓库页面新建一个你的仓库 创建git上的仓库后,我们还需要建立本地的仓库,所以打开Mac终端,建立本地仓库文件夹(这里我用HelloC),然 ...
- 插入排序---直接插入排序算法(Javascript版)
将n个元素的数列分为已有序和无序两个部分. 数列:{a1,a2,a3,a4,…,an} 将该数列的第一元素视为有序数列,后面都视为无序数列: {{a1},{a2,a3,a4,…,an}} 将无序数列中 ...
- Oracle Error - "OCIEnvCreate failed with return code -1 but error message text was not available".
ISSUE: When trying to connect to an Oracle database you receive the following error: "OCIEnvCre ...
- Java继承知识总结
Java中的继承作为Java面向对象三大特性之一,在知识点上而言,还是很多的.现做出如下总结: 1. 继承的概念: 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种 ...
- EC笔记,第一部分:1.视C++为一个语言联邦
C++可看作由以下四种次语言组合而成1.C语言 高效,内置数据类型,数组,区块,语句,指针,预处理器,没有重载.异常.模板2.类 构造,析构,封装,继承,多态,迟绑定3.模板 模板元 ...
- Delphi QC 记录
各网友提交的 QC: 官方网址 说明 备注 https://quality.embarcadero.com/browse/RSP-12985 iOS device cannot use indy id ...
- PHP组件化开发
设计思想中有两种极端:大而全.小而美. 一般我们常用的库是小而美,用的框架是大而全.从Symfony实现Component式开发开始,框架的组件化逐渐成为趋势.我们可以任意的组合各种Compoent来 ...
- FreeBSD应该装gnome3做桌面
目前freebsd pkg包管理体系的repo源多了一些,速度快了很多. 仓库中目前的版本为3.14,安装gnome3很简单. pkg install xorg gnome3 echo "e ...