2015-07-01 1 views
0

Я хотел бы заблокировать ориентацию экрана, указав конфигурацию в AndroidManifest, вместо того, чтобы делать это программно. Так что я в конечном итоге со следующим подходом:Проблема при попытке установить ориентационный экран на естественную или стандартную ориентацию

значения/config.xml

<resources> 
    <integer name="orientation">1</integer> 
</resources> 

значения-sw600dp/config.xml

<resources> 
    <integer name="orientation">0</integer> 
</resources> 

Если проверить значение-х ресурс программно

getResources().getInteger(R.integer.orientation) 

Я получаю ожидаемое значение: 0 для планшетов и 1 для телефонов, что является значением, заданным каркасом для пейзажной и портретной ориентации соответственно.

Но если я использую этот ресурс в AndroidManifest:

<activity 
      android:name="activities.InitialConfigActivity_" 
      android:noHistory="true" 
      android:screenOrientation="@integer/orientation" /> 

Активность всегда запускает в портретном режиме, независимо от того, это таблетка или устройство телефонной трубки.

Любые мысли?

Спасибо!

ответ

1

Редактировать: Я изначально прочитал ваш вопрос, чтобы вы хотели полностью контролировать начальную ориентацию. Если вы удовлетворены, чтобы получить естественную/стандартную ориентацию, используйте nosensor, как описано ниже.


Это не может считаться ответом - у меня было больше общего, чем можно было бы добавить в комментарий.

Возможно, вы уже рассмотрели обсуждение этих вопросов: related-1, related-2, related-3.

По моему опыту, когда вопрос был исследован несколькими разными людьми в течение четырех лет, без решения найдено, обычно это означает, что решения нет.

Одним из вариантов может быть использование nosensor ориентации в манифесте:

андроида: screenOrientation = «nosensor»

Это начинает свою деятельность в «по умолчанию» устройства или «естественной» ориентации. На моих устройствах это: телефон = портрет, 7-дюймовый планшет = портрет, 10-дюймовый планшет = пейзаж. Не будет работать для вас, если вы хотите пейзаж для 7-дюймового планшета.

This post содержит код для определения ориентации устройства по умолчанию.