Wie erkenne ich meine Bildschirmausrichtung im Hochformat gesperrten Bildschirm in Android?

Ich möchte die Ausrichtung des Kamerabildschirms im gesperrten Hochformatmodus ermitteln. Ich verwende die Kamera in meiner Fragmentklasse und habe die Bildschirmausrichtung bereits als Hochformat festgelegt. Das Problem besteht jedoch darin, dass ich die Kamera vom Hochformat aus drehe Um die Landschaft zu gestalten, ändert sich dies und ich muss die Aufnahmetaste nur dann sichtbar machen, wenn sich die Kamera im Hochformat befindet. Kann mir jemand helfen, die Orientierungsänderungen im Hochformat zu bekommen? Unten ist mein Code:

getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

sensorManager.registerListener(new SensorEventListener() {

    int orientation=-1;;

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.values[1] < 6.5 && event.values[1] > -6.5) {
            if (orientation!=1) {
                Log.d("Sensor", "Landscape");
            }
            orientation = 1;
        } else {
            if (orientation!=0) {
                Log.d("Sensor", "Portrait");
            }
            orientation = 0;
        }
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }
}, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);

if (orientation == 0) {
    // capture button visisble
} else {
    // invisible
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage