我们的团队最近更新了一个系统应用程序(安装在priv-app中),从Android 5升级到Android 9,这似乎打破了以前以编程方式翻转设备方向的工作方式(以及相对完善的文档)。
我们一直在使用这种方法,它在全球范围内改变了设备的方位180度:
Settings.System.putInt( context.getApplicationContext().getContentResolver(), Settings.System.USER_ROTATION, 2)我们检查每一次,以确保加速度计旋转也是禁用的。实际上,该设置在询问设置提供程序时会保持不变,并且可以看到正在更新的值,即使在重新启动等之后,屏幕也根本没有反应。
我正在试图理解,如果Android 9引入了更多可以防止屏幕旋转的问题,如果有人对这个问题有任何见解的话,我会很感激吗?
发布于 2022-04-20 23:36:53
如果您希望更改特定的活动,则可以使用Activity.setRequestedOrientation()。这可以明确地设置为肖像,反向肖像,景观,逆向景观等。然后,它将锁定您设置的方向。您可以使用各种传感器值,如果您希望它是灵活的用户。
如果你想知道你当前的方向是什么(包括反向定向),这可能会很复杂,但我只是在这里回答了我自己关于如何做到这一点的问题- Android sensor orientation problems with edge-to-edge insets。
如果要更改系统旋转,则需要确保ACCELEROMETER_ROTATION为off,然后您使用的值需要来自表面旋转常数(相对于显示的自然方向)- https://developer.android.com/reference/android/view/Surface#ROTATION_0。
另一个快速编辑-任何活动都可以覆盖这个设置(包括一个启动程序)为自己。所以它可能是,无论你运行什么,实际上是什么改变了锁定或允许特定的方向。
https://stackoverflow.com/questions/71944583
复制相似问题