我的应用程序在Manifest中的活动声明中明确设置了屏幕方向:
android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"
但是,方向总是风景。此外,在settings>display
或settings>accessibility
中无法启用定位。
在什么情况下Android会确定方向?
使用API 19.我在此Android PC上运行我的应用。
答案 0 :(得分:1)
这很可能是您的" Android Mini PC RK3288"无法实现的。根据您的观察,自动旋转启用/禁用或方向配置没有设置控制,并且此设备使用HDMI连接进行屏幕输出,因此可能会硬编码以始终以横向输出。 Hoewever,你应该联系制造商并要求他们验证这一点。也许他们有详细信息或秘密来实现这一目标?问这个问题很痛苦。
与此同时,可以执行Rotating a view in Android。这种解决方法应该适合你。
HTHS
答案 1 :(得分:0)
在documentation处有注意
注意:当您声明其中一个横向或纵向值时,它是 被认为是对其定位的一个严格要求 活动运行。因此,您声明的值可以过滤 Google Play等服务,因此您的应用仅适用于 支持您的活动所需方向的设备。对于 例如,如果您声明“landscape”,“reverseLandscape”或 “sensorLandscape”,那么您的应用程序将仅可用于 支持横向的设备。但是,你也应该 明确声明您的应用程序需要肖像或 与元素的横向方向。例如, 。这个 纯粹是Google Play(和其他人)提供的过滤行为 支持它的服务)和平台本身无法控制 是否可以在设备仅支持某些设备时安装您的应用 取向。
所以我猜你使用的设备在此支持中有所不同,或根本不支持它!
您应该注意的其他事项是,您可以安装/测试此类应用将adb投放到由于这些过滤功能而无法安装Google Play的设备。
强制定位的另一种方法是使用
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
在设置每个活动的屏幕之前
即。在setContentView(R.layout.activity_main);
之前。
即使此代码也不确定是否可以在您的设备上运行。
在过去,我有关于方向锁定的奇怪行为的报告,但恰恰相反,因为setRequestedOrientation
不起作用,而锁定思想AndroidManifest.xml
正在起作用。