浅谈中山棋牌游戏iOS开发实用技术之传感器
时间: 2020-10-19 21:08 浏览次数: 当前栏目:公司新闻编辑:中山手机棋牌游戏
#一传感器财?什么是Φ传感器传感器是一种感应\检测周围环境的一种装置牛牛游戏传感器的作用用于感应\检测设备周边的信息不同类型的传感器,检测的信息也不一样iPhone内置的传感器

  #浅谈iOS开发实用技术之传感器

  一 传感器

财  ? 什么是Φ 传感器

  传感器是一种感应\检测周围环境的一种装置

 牛牛游戏 传感器的作用

  用于感应\检测设备周边的信息

  不同类型的传感器, 检测的信息也不一样

  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开发实用技术之传感器,返回首页查看更多信息!



Copyright © 中山亿鸿电子产品有限公司 版权所有 备案号: 粤ICP备5548875
全国服务电话:021-668744215   传真:021-668744215
公司地址:广东省中山市高新区幸福广场幸福大道A26-8   网站地图  最新文章

手机棋牌游戏