Geräteausrichtung erkennen, wenn die Aktivitätsausrichtung gesperrt ist

In meinem Projekt muss ich die Ausrichtung einer Aktivität sperren. (Ich kann die Aktivität nicht neu erstellen.)

Ich möchte eine Meldung anzeigen, wenn der Benutzer die Ausrichtung des Geräts ändert, die besagt: "Die Ansicht ist in dieser Position gesperrt ..."

Ich kann die Ausrichtung mit diesem Code einfach sperren:

if(version >= Build.VERSION_CODES.JELLY_BEAN_MR2){
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
    }else{
        int orientation = activity.getResources().getConfiguration().orientation;
        if(orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }else{
            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }

Mit diesem Code wird die Ansicht gesperrt, aber ich kann nicht erkennen, wann der Benutzer die Geräteorientierung ändert.

Und wenn ich diesen folgenden Code verwende:

@Override
   public void onConfigurationChanged(Configuration newConfig) {
     //Check if the orientation has change
     if(newConfig.orientation != mOrientation){
        Toast.makeText(this, "Message for user", Toast.LENGTH_SHORT).show();
     }

     //Try to lock the view but not working
     newConfig.orientation = mOrientation;

     //Obligatory line that reload the view and cannot be delete
     //(is the biggest prolem of this code)
     super.onConfigurationChanged(newConfig);
   }

Wenn jemand eine Möglichkeit kennt, die Ansicht zu sperren und die Änderung der Geräteorientierung zu erkennen, hilft mir das wirklich.

Vielen Dank an alle

Antworten auf die Frage(3)

Ihre Antwort auf die Frage