我有一些用Iphone记录的运动传感器样本。 现在我要计算用户手势和Iphone上录制的手势之间的距离。
我的问题是Iphone上的传感器数据以与android传感器数据不同的方式表示。如果我不移动Iphone,我得到介于-1和1之间的数据如果我不移动我的Android设备,我会得到大约9的值,因为传感器测量重力。
我无法弄清楚如何转换Iphone传感器读数以将它们与我的安卓传感器读数进行比较。解释了android运动传感器数据here。 Iphone文档包含此pdf。
答案 0 :(得分:2)
我在Android中移植iPhone应用程序时发现了同样的问题。我找到了一个解决方案它适用于我的应用程序。我希望它会对你有所帮助。
现在我把简单的计算如下
public void onSensorChanged(SensorEvent event) {
float t = 2.5f / accMaxValue;
Log.i(TAG,"onSensorChanged X "+ (event.values[0]*t) +"\t\t Y "+ (event.values[1]*t)+"\t\t Z "+ (event.values[2]*t) );
}
从传感器获取最大值
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
accMaxValue = mAccelerometer.getMaximumRange();
希望它有所帮助...