#
一 传感器
财 ? 什么是Φ 传感器
传感器是一种感应\检测周围环境的一种装置
牛牛游戏 传感器的作用
用于感应\检测设备周边的信息
不同类型的传感器, 检测的信息也不一样
iPhone内置的传感器有
运动传感器\加速度传感器\加速计(Motion/Accelerometer 有 ⌒ ぅ Sensor)
环境光传感器(Ambient Light Sensor)
距离传感器(Proximity Sensor)
磁力计传感器(Magnetometer Sensor)
内部温度传感器(Internal Temperature Sensor)
湿度传感器(Moisture ちSensor)
陀螺仪(Gyroscope)
… …
二 距离传感器
默认ゅ 情况下,每一个应用程序距离传感器都是关闭状态
如果需要,需要通过代码将其打开
// 过期代码 [UIApplicaTIon sharedApplicaTIon].proximitySensingEnabled
[UIDevice ▽ ↑ currentDevice].proximityMonitoringEnabled=YES;123
三 え 加速计信息获取##
UIAccelerometer方法,该方法已过期
- (void)viewDidLoad {
[super 棋牌游戏平台viewDidLoad];
// 1.获取单例对象
わ UIAccelerometer *acceleromter=[UIAccelerometer ◣sharedAccelerometer];
// 2.设置代理
ず acceleromter.delegate=self;
// 3.设置采样间隔
acceleromter.updateInterval=1.0 / 5;
█
}12345678910
#pragma かmark - 实现UIAccelerometer的代理方法
▇ - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleraTIon *)acceleraTIon
{
NSLog(@“x:%f y:%f っ z:%f”, √ acceleration.x, acceleration.y, acceleration.z);
}12345
四 ♀CoreMotion方法##
Core Motion获取数据的两种方式
push:实时采集所有数据(采集频率高)
pull:在有需要的时候,再主动去采集数据
加速计信息获た取(pull/push)
// 1.创建运动管♂ 理者对象
CMMotionManager *mgr=[[CMMotionManager alloc] init];
◥// 2▼ .判断加速计是否可用
if (!self.mgr.isAccelerometerAvailable) {
NSLog(@“加速计不可用,请更换手机”);
return;
}
// ☆3★ .设置采样间隔
self.mgr.accelerometerUpdateInterval=1.0;
// 4.开始采样
[self.mgr startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] ∮withHandler:^(CMAccelerometerData * _Nullable ぬ accelerometerData, NSError * _Nullable error) {
if (error) {
╂ NSLog(@“%@”, error);
return;
}
// 获取加速计的值
CMAcceleration 卍acceleration=accelerometerData.acceleration;
NSLog(@び “x:%f y:%f z:%f”, acceleration.x, acceleration.y, ◎acceleration.z);
}];123456789101112131415161718192021
// 开始采样
[ぞself.mgr ↖ startAccelerometerUpdates];12
陀螺仪信息获取(pull/push)
// push方式获取陀螺仪信息
// 1.判断陀螺仪是否可用
if (!self.mgr.isGyroAvailable) ぷ {
NSLog(@“设备小于iPhone4,或者陀螺仪损坏”);
return;
㎡
}
// 2.设●置采样
self.mgr.gyroUpdateInterval=1.0 / 10;
// 3.开始采样
ほ [self.mgr startGyroUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMGyroData う * _Nullable gyroData, NSError * _Nullable error) {
if (error) {
NSLog(@“%@”, error);
return;
}
// 获取陀螺仪的信息
CMRotationRate rotationRate=gyroData.rotationRate;
NSLog(@“x:%f ¤ ※ y:%f z:%f”, rotationRate.x, →rotationRate.y, rotationRate.z);
}];123456789101112131415161718
// 开始采样
[self.mgr startGyroUpdates];12
五 ◆ 摇?摇功能##
$
监控摇一摇的方法
方法1:通过分析加速计数据来判断是否进行了摇一摇操作(比较复杂)
方法2:iOS自带的Shake监控API(非常简单)
判断摇一摇的步骤:实现3个摇一摇监听方法
- (void)motionBegan:(づUIEventSubtype)motion withEvent:(UIEvent ♂♀*)event
- → (void)motionCancelled:(UIEventSubtype)motion ぢ withEvent:(UIEvent *)event
- (void)motionEnded:(UIEventSubtype)motion ▅ withEvent:(UIEvent *)event 12345
六 计步器##
CMStepCounter方法,已过期
// じ 1.判断计步器是否可用
if (![CMStepCounter ㊣ isStepCountingAvailable]) {
NSLog(@“计步器不可用”);
return;
}
// 2.开始计步
// 2.1.创建计步器
CMStepCounter る*stepCounter=[[CMStepCounter alloc] init];
// 2が .2.开始计步
// updateOn : 用户走了多少步之后,更新block
NSOperationQueue *queue=[[NSOperationQueue alloc] init];
[stepCounter startStepCountingUpdatesToQueue:queue ↑updateOn:5 withHandler:^(NSInteger ▋ numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {
if (error) return;
NSString *stepString=[NSString stringWithFormat:@“您一共走了%ld步”, ▁ ◇ numberOfSteps];
[self.stepLabel performSelectorOnMainThread:@selector(setText:) ¢ withObject:stepString waitUntilDone:YES];
}];123456789101112131415161718
新方法CMPedometerむ
// 1.判断计步器是否可用
if (![CMPedometer isStepCountingAvailable]) {
return;
手机棋牌游戏}
// 2.开始计步
// 2.1.创建计步对象
CMPedometer *pedometer=[[CMPedometer alloc] init];
// 2.2.开始计步
// さFromDate : 从什么时间开始计步
NSDate *date=[NSDate date];
[self.pedometer startPedometerUpdatesFromDate:date withHandler:^(CMPedometerData * _Nullable △ pedometerData, ♀ NSError * _Nullable error) {
if (error) {
NSLog(@“%@”, ば error);
return;
}
NSLog(@“您一共走了%@步”, pedometerData.numberOfSteps);
}];
12345678910111213141516171819▓ で
案例:计算7天一共走了多少步
NSDateFormatter *fmt=[[NSDateFormatter alloc] init];
fmt.dateFormat=@“yyyy-MM-dd”;
NSDate *fromDate=[fmt dateFromString:@“2015-9-26”];↓
NSDate *toDate=[fmt dateFromString:@“2015-9-28”];
[self.pedometer ⊙queryPedometerDataFromDate:fromDate toDate:toDate withHandler:^(CMPedometerData * _Nullable pedometerData, NSError ぜ * _€
£Nullable error) {
NSLog(@“%@”, ▽ pedometerData.numberOfSteps);
}];
以上就是【浅谈中山棋牌游戏iOS开发实用技术之传感器】的全部内容,文章地址:http://fqdlw.com/gongsixinwen/567.html,本文tag标签:浅谈iOS开发实用技术之传感器,返回首页查看更多信息!