2017-02-13 17 views
2

我有一个问题。那么我做了一个Android设备的应用程序。哪个返回我的值iOS上的线性加速度如何从Android TYPE_LINEAR_ACCELERATION获取相同的数据?

SensorManager sensorManager; 
Sensor sensor; 
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION); 
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);with 

public void onSensorChanged(SensorEvent event) { 
     xAxis = event.values[0]; 
     zAxis = event.values[2]; 
    } 

那么我想学习一点关于iOS和iOS系统的这个程序。我怎样才能做到这一点的iOS?我搜索了一下,但没有找到有用的东西。

+1

您是否在寻找检测每个轴的加速度?如果是这样,这是答案:https://www.tutorialspoint.com/ios/ios_accelerometer.htm – KrishnaCA

+0

谢谢。这就是我正在寻找的东西。还有一个问题。这与Android中的线性加速相同吗?或者这是正常的加速度? – Mjafko

+0

这是线性加速度。对不起,误导你。我只是重新检查。它被折旧。请检查我的答案是否正确 – KrishnaCA

回答

3

直线加速=力/质量=(AX,AY,AZ),它的3个方向

#import <CoreMotion/CoreMotion.h> 

CMMotionManager *manager = [[CMMotionManager alloc] init]; 

if (manager.isAccelerometerAvailable) { 
    manager.accelerometerUpdateInterval = 0.01; 
    [manager startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData * _Nullable accelerometerData, NSError * _Nullable error) { 
     if (accelerometerData != NULL) { 
      CMAcceleration acceleration = accelerometerData.acceleration; 
      double x_acceleration = acceleration.x; 
      double y_acceleration = acceleration.y; 
      double z_acceleration = acceleration.z; 
      double linear_acceleration = sqrt(pow(x_acceleration, 2) + pow(y_acceleration, 2) + pow(z_acceleration, 2)); 
      NSLog(@"linear_acceleration: %@", linear_acceleration); 
     } 
    }]; 
} 

UIAccelerometer与分量的矢量的折旧和与CoreMotion框架代替。

+0

非常感谢! – Mjafko

相关问题