gpt4 book ai didi

android - getRotation 始终返回零

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:30:42 26 4
gpt4 key购买 nike

getRotation 始终返回零,无论屏幕朝向哪个方向。我在运行 2.3 的真实设备上运行它。有什么理由吗?

 Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();

最佳答案

getRotation 仅在应用具有 UI 并且允许 UI 旋转时才有效。操作系统有一个设置可以防止任何应用程序自动旋转:

设置 > 显示 > 自动旋转屏幕

这必须启用。在我的设备上它被禁用了。尽管如此,有关 getRotation 的 Android 文档不仅没有指出这一点,甚至还假设即使没有 UI,getRotation 也会返回旋转。你需要一个用户界面。对于没有 UI 但出于与用户交互无关的目的需要知道设备方向的服务之类的服务,这当然是一个问题。就个人而言,我一直被谷歌激怒,因为谷歌雇佣了业余程序员,他们认为访问硬件功能几乎总是需要某种用户界面。这种问题在很多场合都出现过,比如必须有一个 SurfaceView 才能录制视频。

最后,应用程序显然不需要 getRotation 来确定设备是否旋转了 0、90、180 或 270 度。关闭自动旋转屏幕后,默认相机应用程序仍然能够计算出角度旋转,因此它不能来自 getRotation,除非它能够以某种方式打开自动旋转屏幕设置。

关于android - getRotation 始终返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14626066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com