为什么加速度计坐标会发生变化?

时间:2014-03-28 04:41:05

标签: android

我从下面的代码段获得加速度计读数,

public AccelerometerHandler(Context context) {
    SensorManager manager = (SensorManager) context
            .getSystemService(Context.SENSOR_SERVICE);
    if (manager.getSensorList(Sensor.TYPE_ACCELEROMETER).size() != 0) {
        Sensor accelerometer = manager.getSensorList(
                Sensor.TYPE_ACCELEROMETER).get(0);
        manager.registerListener(this, accelerometer,
                SensorManager.SENSOR_DELAY_GAME);
    }
}

@Override
public void onSensorChanged(SensorEvent event) {
    accelX = event.values[0];
    accelY = event.values[1];
    accelZ = event.values[2];
}

public float getAccelX() {
    return accelX;
}

public float getAccelY() {
    return accelY;
}

public float getAccelZ() {
    return accelZ;
}

当我在平板电脑设备上试用我的应用程序时,X和Y加速度计读数会被交换。如何检测设备是否为标签以及如何防止这种情况发生?

1 个答案:

答案 0 :(得分:0)

要查看设备是手机或平板电脑的天气,您可以使用以下方法

public static boolean isTablet(Context context) 
{
    return (context.getResources().getConfiguration().screenLayout
            & Configuration.SCREENLAYOUT_SIZE_MASK)
            >= Configuration.SCREENLAYOUT_SIZE_LARGE;
}

Source