有问题迫使设备锁定为横向/纵向模式吗?
我创建了一个启动器应用程序,活动本身被指定为横向屏幕方向,因为我的设备是仅景观设备。
进一步锁定屏幕,以便在横向屏幕中运行其他应用程序并运行时。
View orientationChanger = new LinearLayout(this);
WindowManager.LayoutParams orientationLayout = new WindowManager.LayoutParams(WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 0, PixelFormat.RGBA_8888);
orientationLayout.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR;
WindowManager wm = (WindowManager) this.getSystemService(Service.WINDOW_SERVICE);
wm.addView(orientationChanger, orientationLayout);
orientationChanger.setVisibility(View.VISIBLE);
它确实可以解决这个问题,例如:
现在我想允许用户旋转方向,以防某些应用程序需要以纵向模式运行。
I tried to run these command on adb shell before doing it on my code:
try {
Process stopAccelerometer = Runtime.getRuntime().exec("content insert --uri content://settings/system --bind name:s:accelerometer_rotation --bind value:i:0");
Process toProtrait = Runtime.getRuntime().exec("content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:3");
} catch (IOException ex) {
ex.printStackTrace();
}
是的,它在Portrait中运行应用程序,但是如果我应用命令转回横向,它确实会回到横向。
Process toProtrait = Runtime.getRuntime().exec("content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0");
在代码中,最后一个值为0作为横向。我认为应用程序本身不支持横向,因此当我应用命令时,应用程序停留在Portrait。
我在网上发现了一个正在这样做的应用程序。 Orientation Applications
答案 0 :(得分:0)
请求将活动设置为横向模式
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
请求活动为纵向模式
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
把它放在你的oncreate();
上或只是在清单活动中设置
<activity
android:screenOrientation="portrait/landscape"
android:name=".ui.MainActivity"
android:windowSoftInputMode="stateHidden"/>