兩種使用方法
1. pull(用戶主動獲取, 調用頻率根據用戶需求)
- (void)pull
{
// 1. 創建mgr
CMMotionManager *mgr = [[CMMotionManager alloc] init];
_mgr = mgr;
// 2. 判斷加速器是否能夠使用
if (mgr.isAccelerometerAvailable) { // 可以使用
// 3.開始獲取
[mgr startAccelerometerUpdates];
// 此處已點擊一次屏幕採集一次信息
}
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
// 點擊屏幕就獲取採集信息
NSLog(@"x = %f y = %f z = %f ", _mgr.accelerometerData.acceleration.x , _mgr.accelerometerData.acceleration.y, _mgr.accelerometerData.acceleration.z);
}
--------------------------- 華麗的分割線-----------------------
2. push (系統主動推送,調用頻率高)
- (void)push
{
// 1.創建CoreMotion管理者
CMMotionManager *mgr = [[CMMotionManager alloc] init];
_mgr = mgr;
// 2.判斷加速器是否能夠使用(最好判斷)
if(mgr.isAccelerometerAvailable){ // 可以使用
// 3.設置獲取時間間隙
mgr.accelerometerUpdateInterval = 1.0 / 30.0; // 1分鐘30次
// 4.開始獲取
[mgr startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error) {
if (!error) { // 採集成功
NSLog(@"x = %f y = %f z = %f ", accelerometerData.acceleration.x , accelerometerData.acceleration.y, accelerometerData.acceleration.z);
}
}];
}
}
@end