在什么情况下,方向规范不起作用

时间:2015-03-08 15:52:16

标签: android screen-orientation

我的应用程序在Manifest中的活动声明中明确设置了屏幕方向:

android:screenOrientation="portrait"
android:configChanges="orientation|screenSize|keyboardHidden"

但是,方向总是风景。此外,在settings>displaysettings>accessibility中无法启用定位。

在什么情况下Android会确定方向?

使用API​​ 19.我在此Android PC上运行我的应用。

2 个答案:

答案 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正在起作用。