如何从传感器Sensor.TYPE_ORIENTATION获取event.values [] not 0.0

时间:2014-09-22 13:36:19

标签: android geolocation android-sensors

哪里可能是我的失败以及为什么Sensor.TYPE_ORIENTATION无法正常工作? 它只返回全部0.0 我在AndroidManifest.xml中编写了所有必需的权限 它必须适用于android直到android 4.0.3 我必须知道相机的目标位置。我知道SensorManager.getOrientation()仅适用于Android 4.0.3及更高版本,不是吗?

Sensor mOrientation;
onCreate(...){
...
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
}
@Override
  protected void onResume() {
    super.onResume();
    mSensorManager.registerListener(this, mOrientation, SensorManager.SENSOR_DELAY_UI);
}
@Override
protected void onPause() {
  super.onPause();
  mSensorManager.unregisterListener(this);
}
public void onSensorChanged(SensorEvent event) {
    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION){
        String mSensorString;
        mSensorString = "Azimuth: ";
        mSensorString += String.valueOf(event.values[0]);
        mSensorString += "\nPitch: ";
        mSensorString += String.valueOf(event.values[1]);
        mSensorString += "\nRoll: ";
        mSensorString += String.valueOf(event.values[2]);
        tv2.setText("\nOrientation: \n" + mSensorString);
    }
}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我的智能手机没有磁传感器。我在其他设备上测试此代码,一切正常。