Android - принудительная ориентация только на смартфонах

Мое приложение имеет 3 экрана, и все они должны быть только для портрета в смартфонах и обе ориентации для планшетов.

Unitl теперь я использовал следующий код в OnCreate:

if (!getResources().getBoolean(R.bool.isTablet)) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

Однако, если я буду держать смартфон в альбомном режиме и запустим приложение, оно будет отображаться в альбомной ориентации в течение нескольких секунд, а затем переместится в портретный режим.

Многие ответы здесь предполагают блокировку ориентации через манифест, но это блокирует ориентацию в планшетах, что нежелательно.

Я был бы очень благодарен за любую информацию, которая приводит меня к решению. Благодарю.

1 ответ

Вы можете заблокировать его в манифесте, а затем разблокировать в коде, если это планшет.

Это может не иметь значения для вашего случая, но я читал, что Nexus 7 не сообщает о себе как о планшете, используя метод, который вы делаете. Хотя я не уверен, что это точно, никогда не пробовал сам.