私が知っている2つのアプローチは次のとおりです。
画面の向きを強制する
設定した向きでアプリ独自の向き設定をオーバーライドする場合は、「Android で画面の向きをグローバルに強制する方法は?」の手順に従ってください。.
無理なく向きを変える
設定した向きでアプリ自体の向きの設定を上書きしたくない場合は、まず、電話の自動回転がオフになっていることを確認してください。
Settings.System.putInt(
this.contentResolver,
Settings.System.ACCELEROMETER_ROTATION,
0 //0 means off, 1 means on
);
次に、電話のユーザーの向きを設定します。
Settings.System.putInt(
getContentResolver(),
Settings.System.USER_ROTATION,
Surface.ROTATION_0 //Use any of the Surface.ROTATION_ constants
);
putInt
の戻り値をチェックして、変更が成功したことを確認することを忘れないでください。
また、次の許可が必要だと思います。
<uses-permission android:name="android.permission.WRITE_SETTINGS" />