iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx

上传人:b****4 文档编号:16683195 上传时间:2022-11-25 格式:DOCX 页数:10 大小:19.26KB
下载 相关 举报
iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx_第1页
第1页 / 共10页
iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx_第2页
第2页 / 共10页
iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx_第3页
第3页 / 共10页
iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx_第4页
第4页 / 共10页
iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx

《iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

iOS开发高级篇传感器加速计摇一摇计步器Word格式文档下载.docx

磁力计传感器(MagnetometerSensor)

内部温度传感器(InternalTemperatureSensor)

湿度传感器(MoistureSensor)

陀螺仪(Gyroscope)

......

2、环境光传感器(AmbientLightSensor)

是iPhone和Mac设备中最为古老的传感器成员

它能够让你在使用Mac、iPhone、iPad时,眼睛更为舒适

从一个明亮的室外走入相对黑暗的室内后,iOS设备会自动调低亮度,让屏幕显得不再那么光亮刺眼

当你使用iPhone拍照时,闪光灯会在一定条件下自动开启

几乎所有的Mac都带有背光键盘,当周围光线弱到一定条件时,会自动开启键盘背光

3、距离传感器(ProximitySensor)

用于检测是否有其他物体靠近设备屏幕

当你打电话或接电话时将电话屏幕贴近耳边,iPhone会自动关闭屏幕,好处是

节省电量

防止耳朵或面部不小心触摸屏幕而引发一些不想要的意外操作

题外话:

利用距离传感器,能找出很多电视剧的穿帮镜头

4、磁力计传感器(MagnetometerSensor)

可以感应地球磁场,获得方向信息,使位置服务数据更精准

可以用于电子罗盘和导航应用

iPad的SmartCover盒盖睡眠操作就是基于磁力计传感器

5、内部温度传感器(InternalTemperatureSensor)

从iPad一代开始,iOS设备都加入了一个内部温度传感器,用于检测内部组件温度,当温度超过系统设定的阈值时,会出现以下提示

6、湿度传感器(MoistureSensor)

湿度传感器跟其他基于微电子的传感器不同,是一个简单的物理传感器

简单来说,湿度传感器就是一张遇水变红的试纸

Apple的维修人员就是通过检测试纸是否变红,来判断设备是否进水

(设备进水不在保修范围之内)

7、陀螺仪(Gyroscope)

陀螺仪是随着iPhone4的上市首次出现在iOS设备上的传感器

陀螺仪的原理是检测设备在X、Y、Z轴上所旋转的角速度

陀螺仪在赛车类游戏中有重大作用:

模拟汽车驾驶时方向盘旋转的动作

使得这类游戏的操控体验更为真实

8、加速计传感器(Motion/AccelerometerSensor)

最早出现在iOS设备上的传感器之一

加速计用于检测设备在X、Y、Z轴上的加速度(哪个方向有力的作用)

加速计可以用于检测设备的摇晃,经典应用场景

摇一摇

计步器

小结

三、距离传感器的使用

默认情况下,每一个应用程序距离传感器都是关闭状态

如果需要,需要通过代码将其打开

//开启距离感应功能

[UIDevicecurrentDevice].proximityMonitoringEnabled=YES;

//监听距离感应的通知

[[NSNotificationCenterdefaultCenter]addObserver:

self

selector:

@selector(proximityChange:

name:

UIDeviceProximityStateDidChangeNotification

object:

nil];

-(void)proximityChange:

(NSNotification*)notification{

if([UIDevicecurrentDevice].proximityState==YES){

NSLog(@"

某个物体靠近了设备屏幕"

);

//屏幕会自动锁住

}else{

某个物体远离了设备屏幕"

//屏幕会自动解锁

}

}

四、加速计

1、加速计原理

检测设备在X、Y、Z轴上的加速度(哪个方向有力的作用,哪个方向运动了)

根据加速度数值,就可以判断出在各个方向上的作用力度

2、UIAccelerometer

  1)加速计程序的开发

在iOS4以前:

使用UIAccelerometer,用法非常简单(到了iOS5就已经过期)

从iOS4开始:

CoreMotion.framework

虽然UIAccelerometer已经过期,但由于其用法极其简单,很多程序里面都还有残留

  2)UIAccelerometer的使用步骤

获得单例对象

UIAccelerometer*accelerometer=[UIAccelerometersharedAccelerometer];

设置代理

accelerometer.delegate=self;

设置采样间隔

accelerometer.updateInterval=1.0/30.0;

//1秒钟采样30次

实现代理方法

-(void)accelerometer:

(UIAccelerometer*)accelerometerdidAccelerate:

(UIAcceleration*)acceleration

//acceleration中的x、y、z三个属性分别代表每个轴上的加速度

3、CoreMotion

1)CoreMotion

在iOS4之前,加速度计由UIAccelerometer类来负责采集数据

随着iPhone4的推出加速度计全面升级,并引入了陀螺仪与Motion(运动)相关的编程成为重头戏苹果特地在iOS4中增加了专门处理Motion的框架-CoreMotion.framework

CoreMotion不仅能够提供实时的加速度值和旋转速度值,更重要的是,苹果在其中集成了很多牛逼的算法

2)CoreMotion获取数据的两种方式

获取加速计信息

push

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

创建运动管理者对象

CMMotionManager*mgr=[[CMMotionManageralloc]init];

判断加速计是否可用(最好判断)

if(mgr.isAccelerometerAvailable){

//加速计可用

mgr.accelerometerUpdateInterval=1.0/30.0;

开始采样(采样到数据就会调用handler,handler会在queue中执行)

-(void)startAccelerometerUpdatesToQueue:

(NSOperationQueue*)queuewithHandler:

(CMAccelerometerHandler)handler;

pull

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

if(mgr.isAccelerometerAvailable){//加速计可用}

开始采样

-(void)startAccelerometerUpdates;

在需要的时候采集加速度数据

CMAccelerationacc=mgr.accelerometerData.acceleration;

NSLog(@"

%f,%f,%f"

acc.x,acc.y,acc.z);

获取陀螺仪信息

-(void)pullGyro

{

//pull方式获取陀螺仪信息

//1.判断陀螺仪是否可用

if(!

self.mgr.isGyroAvailable){

设备小于iPhone4,或者陀螺仪损坏"

return;

//2.开始采样

[self.mgrstartGyroUpdates];

-(void)pushGyro

//push方式获取陀螺仪信息

//2.设置采样

self.mgr.gyroUpdateInterval=1.0/10;

//3.开始采样

[self.mgrstartGyroUpdatesToQueue:

[NSOperationQueuemainQueue]withHandler:

^(CMGyroData*_NullablegyroData,NSError*_Nullableerror){

if(error){

%@"

error);

//获取陀螺仪的信息

CMRotationRaterotationRate=gyroData.rotationRate;

x:

%fy:

%fz:

%f"

rotationRate.x,rotationRate.y,rotationRate.z);

}];

4、CoreMotion框架结构示意图

五、摇一摇

监控摇一摇的方法

方法1:

通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)

方法2:

iOS自带的Shake监控API(非常简单)

判断摇一摇的步骤:

实现3个摇一摇监听方法

-(void)motionBegan:

(UIEventSubtype)motionwithEvent:

(UIEvent*)event/**检测到摇动*/

-(void)motionCancelled:

(UIEvent*)event/**摇动取消(被中断)*/

-(void)motionEnded:

(UIEvent*)event/**摇动结束*/

六、计步器

计步器是从iOS7开始引入(内部原理还是加速计)

iOS7:

CMStepCounter--&

gt;

iOS8过期

//1.判断计步器是否可用

[CMStepCounterisStepCountingAvailable]){

计步器不可用"

//2.开始计步

//2.1.创建计步器

CMStepCounter*stepCounter=[[CMStepCounteralloc]init];

//2.2.开始计步

//updateOn:

用户走了多少步之后,更新block

NSOperationQueue*queue=[[NSOperationQueuealloc]init];

[stepCounterstartStepCountingUpdatesToQueue:

queueupdateOn:

5withHandler:

^(NSIntegernumberOfSteps,NSDate*_Nonnulltimestamp,NSError*_Nullableerror){

if(error)return;

//1.GCD方式

//dispatch_sync(dispatch_get_main_queue(),^{

//self.stepLabel.text=[NSStringstringWithFormat:

@"

您一共走了%ld步"

numberOfSteps];

//});

NSString*stepString=[NSStringstringWithFormat:

[self.stepLabelperformSelectorOnMainThread:

@selector(setText:

)withObject:

stepStringwaitUntilDone:

YES];

iOS8用法

/**计步器对象*/

@property(nonatomic,strong)CMPedometer*pedometer;

#pragmamark-懒加载代码

-(CMPedometer*)pedometer

if(_pedometer==nil){

self.pedometer=[[CMPedometeralloc]init];

return_pedometer;

[CMPedometerisStepCountingAvailable]){

//2.1.创建计步对象

//FromDate:

从什么时间开始计步

NSDate*date=[NSDatedate];

[self.pedometerstartPedometerUpdatesFromDate:

datewithHandler:

^(CMPedometerData*_NullablepedometerData,NSError*_Nullableerror){

您一共走了%@步"

pedometerData.numberOfSteps);

计算前7天内的某段时间一共走了多少步

NSDateFormatter*fmt=[[NSDateFormatteralloc]init];

fmt.dateFormat=@"

yyyy-MM-dd"

;

NSDate*fromDate=[fmtdateFromString:

2015-9-26"

];

NSDate*toDate=[fmtdateFromString:

2015-9-28"

[self.pedometerqueryPedometerDataFromDate:

fromDatetoDate:

toDatewithHandler:

相关文章

Swift-加速传感器(CoreMotion)的用法,小球加速运动并反弹样例ios加速传感器UIAccelerometerlibgdx处理加速传感器安卓加速传感器开发重力加速传感器mma7660陀螺仪与加速传感器数据的融合算法解析Cocos2dx3.1.1之加速传感器、监听物理按键自平衡小车中陀螺仪与加速传感器数据的融合MEMS之重力加速传感器mma7660,与陀螺仪使用加速传感器判定手机摇晃代码input模型之加速传感器(accelerometer)驱动浅析简单的获取加速传感器数据的例子Android-加速传感器或者OrientationEventListener做横竖屏切换iOS开发——高级篇——传感器(加速计、摇一摇、计步器)Android传感器之《加速传感器》——摇一摇功能Android实战简易教程-第三十一枪(基于加速度传感器的摇一摇功能实例)Android实战简易教程&

lt;

三十一&

(基于加速度传感器的摇一摇功能实例)Android_开发Android传感器(加速度传感器,磁场传感器,光线传感器,方向传感器)传感器(7)加速传感器,重力传感器,邻近传感器,光线传感器综合示例android传感器摇一摇功能CopyRight2014-2015IT

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1