【问题标题】:How to convert motion sensor data from Iphone to Android?如何将运动传感器数据从 Iphone 转换到 Android?
【发布时间】:2011-03-28 07:25:22
【问题描述】:

我有一些用 Iphone 记录的运动传感器样本。 现在我正在计算用户手势与 iPhone 上记录的手势之间的距离。

我的问题是 Iphone 上的传感器数据与 android 传感器数据的表示方式不同。如果我不移动 Iphone,我会得到介于 -1 和 1 之间的数据,如果我不移动我的 Android 设备,我会得到大约 9 的值,因为传感器会测量重力。

我不知道如何转换 Iphone 传感器读数以将它们与我的 android 传感器读数进行比较。 android 运动传感器数据解释here。 Iphone 文档包含此pdf

【问题讨论】:

标签: iphone android accelerometer


【解决方案1】:

我在 Android 中移植 iPhone 应用程序时发现了同样的问题。我找到了一种解决方案。它适用于我的应用程序。

  1. 我发现 iPhone 的加速度计值在 -2.5 和 +2.5 之间。 https://discussions.apple.com/thread/1743220?start=0&tstart=0
  2. 我发现 Android 的 Sensor Class 有找到最大值的方法。 http://developer.android.com/reference/android/hardware/Sensor.html#getMaximumRange()

现在我把简单的计算如下

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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多