我有Android PC root (开箱即用)连接到外接显示器(HDMI和USB),即使我的应用指定了肖像,也始终以横向显示在Manifest的活动声明中:
android:screenOrientation="portrait"
我正在尝试从此SO post执行以下命令以强制纵向:
proc = Runtime.getRuntime().exec("adb shell content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0");
int exitVal = proc.waitFor();
这应该将屏幕设置为纵向,但显示屏始终保持横向显示。没有记录例外。
我也使用了以下内容但没有成功:
process = Runtime.getRuntime().exec("content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0");
process = Runtime.getRuntime().exec(new String[]{"su","-c","content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0"});
在这两种情况下,退出值都是[0]。这意味着命令正常终止。
Android PC上只有一个USB端口和一个微型USB端口(仅供电/无数据)。启用调试后,我无法在DDMS中枚举设备,也无法从BASH将我的开发PC连接到Android PC上的micro USB端口执行shell命令。所以,我试图通过我的Android应用程序执行此操作。
请告知
答案 0 :(得分:2)
在设备上执行命令时,不需要在adb shell
前面添加命令,您的java代码在设备上运行,所以只需将其关闭并运行以下命令
content insert --uri content://settings/system --bind name:s:user_rotation --bind value:i:0"
只需快速说明,当您这样做时,您告诉Android设备在通过ADB连接到它的另一个Android设备上执行此命令