加速计使用

一、UIAccelerometer

  使用步骤

//1).获得单例对象
UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
//2).设置代理
accelerometer.delegate = self;
//3).设置采样间隔
accelerometer.updateInterval = 1.0/30.0;//1秒钟采样30次
//4).实现代理方法
//acceleration中的x、y、z三个属性分别代表每个轴上的加速度
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration;

二、Core Motion

  在iOS4之前,加速计由UIAccelerometer类来负责采集数据。随着iPhone4的推出,加速计全面设计,并引入了陀螺仪。与Motion(运动)相关的编程称为了重头戏。

  苹果特地在iOS4中增加了专门处理Motion的框架CoreMotion.framework。

1.获取数据的两种方式

1)push

  实时采集所有数据(采集频率高)

2)pull 

  在有需要的时候,再主动去采集数据。

2.使用步骤

1)push

//1)创建运动管理者对象
CMMotionManager *mgr = [[CMMotionManageralloc] init];

//2)判断加速计是否可用(最好判断)
if (mgr.isAccelerometerAvailable) {
//加速计可用
}

//3)设置采样间隔
mgr.accelerometerUpdateInterval = 1.0/30.0; //1秒钟采样30次

//4)开始采样(采样到数据就会调用handler,handler会在queue中执行)
-(void)startAccelerometerUpdatesToQueue:(NSOperationQueue *)queue withHandler:(CMAccelerometerHandler)handler;<span style="line-height: 1.5;"> </span>

2)pull

//1)创建运动管理者对象
CMMotionManager *mgr = [[CMMotionManageralloc] init];

//2)判断加速计是否可用(最好判断)
if (mgr.isAccelerometerAvailable) {
//加速计可用
}

//3)开始采样
-(void)startAccelerometerUpdates;

//4)在需要的时候采集加速度数据
CMAcceleration acc = mgr.accelerometerData.acceleration;
NSLog(@"x:%f,y:%f,z:%f", acc.x, acc.y, acc.z);
时间: 2024-10-26 15:31:54

加速计使用的相关文章

小白求助,怎样根据安卓手机加速计传感器的数据判断用户手部是否高频晃动?

问题描述 小白求助,怎样根据安卓手机加速计传感器的数据判断用户手部是否高频晃动? 无规律的高频晃动动作如何用安卓手机加速计传感器数据检测出来呢?希望各位高手不吝赐教,多谢多谢啊~~~ 解决方案 http://www.cnblogs.com/android100/p/android-yao.htmlhttp://www.eoeandroid.com/thread-322459-1-1.html 解决方案二: 非常感谢,这两个帖子我都看了,但是怎样计算晃动频率呢,我想将高频的晃动动作检测出来

《PhoneGap移动应用开发手册》——1.4节通过加速计事件更新对象的显示位置

1.4 通过加速计事件更新对象的显示位置 PhoneGap移动应用开发手册 开发者可以利用加速计传感器及其持续更新实现诸多功能,如运动监视游戏和更新屏幕上对象的位置. 实现步骤 下面将通过设备加速计传感器的持续更新,移动屏幕上的元素,作为设备移动的反应.该功能通过如下步骤实现. (1)创建HTML初始化框架.在head标签添加cordova JavaScript引用以导入需求的库. (2)在body标签中创建两个div元素.将其中第一个的id属性设置为点,作为在设备屏幕上移动的元素. (3) 第

《iOS 6高级开发手册(第4版)》——1.7节同步获取当前的加速计角度

1.7 同步获取当前的加速计角度iOS 6高级开发手册(第4版)有时,你可能想在不用把自己设定为完全委托的情况下查询加速计.下面的方法打算在UIDevice类别内使用,允许与x/y平面(iOS设备的正面)一起同步返回当前的设备角度.为此,可输入一个新的运行循环,等待加速计事件,从那个回调中获取当前的角度,然后让运行循环返回那个角度: - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAccelerati

《PhoneGap移动应用开发手册》——1.2节使用加速计检测设备的移动

1.2 使用加速计检测设备的移动PhoneGap移动应用开发手册加速计可捕捉设备在x,y,z这3个空间轴上的移动.加速计是一种移动传感器,它能检测当前设备位置的相对移动变化. 实现步骤使用PhoneGap API提供的加速计相关函数检测设备的反馈信息. (1)首先,创建HTML初始化框架,并添加需求脚本文件cordova-2.0.0.js的引用. 通过http://www.packtpub.com.网站购买Packet相关书籍的用户,可以下载已购买书籍的示例代码.其他读者可以访问网站http:/

《iOS 6高级开发手册(第4版)》——1.9节秘诀:基于加速计的滚动视图

1.9 秘诀:基于加速计的滚动视图iOS 6高级开发手册(第4版)好几位读者要求我在本书这一版中包括进一个倾斜滚轮秘诀.倾斜滚轮使用设备的内置加速计来控制在UIScrollView的内容周围的移动.当用户调整设备时,材料会相应地"下落".它不会把视图定位在屏幕上,而是把内容视图滚动到一个新的偏移位置. 创建这个界面的挑战在于:确定设备在什么地方应该具有它的静止轴(resting axis).大多数人最初建议当显示屏靠着它的背部时应该是稳定的,并且z轴方向笔直地指向上方.事实证明:这实际

《PhoneGap移动应用开发手册》——1.3节调整加速计传感器更新时间间隔

1.3 调整加速计传感器更新时间间隔PhoneGap移动应用开发手册getCurrentAcceleration函数只是获取当它被调用的那个时间点的加速计数据,一次调用返回一个响应对象.本例中将设计一个程序可以设定时间间隔以从加速计持续获取其更新,以监视设备的持续运动. 实现步骤通过对PhoneGap API中的一个可用方法提供另外的参数以设置更新时间间隔. (1)首先,创建HTML初始化框架,并添加需要脚本文件cordova-2.0.0.js的引用. (5)创建startWatch函数.首先,

被忽视的手机气压传感器 其实它可以做很多

气压传感器首次在智能手机上使用是在Galaxy Nexus 上而之后推出的一些Android 旗舰手机里也包含了这一传感器像Galaxy S III .Galaxy Note 2和小米2手机上也都有不过大家对于气压传感器仍非常的陌生.跟字面的意思一样气压传感器就是用来测量气压的但测量气压对于普通的手机用户来说又有什么作用呢? 海拔高度测量 对于喜欢登山的人来说都会非常关心自己所处的高度.海拔高度的测量方法一般常用的有2种方式一是通过GPS全球定位系统二是通过测出大气压然后根据气压值计算出海拔高度

产品设计用户体验模式:完整明确的用户体验策略

文章描述:界面设计规范体现了苹果对于iOS应用在设计与开发质量方面的重视,使第三方开发者们必须努力满足用户的高期望高要求. 界面设计规范体现了苹果对于iOS应用在设计与开发质量方面的重视,使第三方开发者们必须努力满足用户的高期望高要求. 不过,在某些情况下,我们的设计方案是否可以与规范的要求有所背离呢?如果可以,那么走多远才算合适?本书的主要目的之一,就是帮助你掌握"差异化"的方法原则,做出正确的设计决策,让你的应用可以鹤立鸡群,成为让用户惊叹的成功产品. 让我们来做一个简单的设想,假

Windows 7的20个特色让你忘记Vista

Windows 7作为Vista的继任者,其优点足够吸引用户与各界厂商,其绚丽的界面,方面快捷的触摸屏,快速启动关闭速度足以各界满意. 随着Windows 7测试版 6801的推出,用户开始慢慢接触Windows 7,微高级副总裁在微软硬件工程大会上表示,Windows 7有20个甚至更多的优点.优势.让用户忘记Vista SP1以及XP SP3. Windows 7桌面内容: 1.Windows 7新的任务栏.Windows 7的任务栏不仅可以显示当前窗口中的应用程序,还可以显示其他已经打开的