哪里可能是我的失败以及为什么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);
}
}
答案 0 :(得分:0)
我找到了解决方案,我的智能手机没有磁传感器。我在其他设备上测试此代码,一切正常。