Проверьте, находится ли планшет в файле Gradle - PullRequest
0 голосов
/ 06 марта 2020

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

Поэтому я пытаюсь использовать манифесты-заполнители в файле Gradle, чтобы установить атрибут screenOrientation в манифесте приложения. Проблема в том, что я не могу проверить размер экрана в файле Gradle. Есть ли способ проверить, является ли это планшет на build.gradle? Или, может быть, я могу достичь тех же результатов, делая что-то другое?

Еще одна вещь, которую я пытался использовать, - это использование логического ресурса, который я получаю из файла ресурсов с квалификатором sw600dp. Но android studio выдает ошибку, говоря, что она не может ссылаться на ресурс, который зависит от конфигурации файла манифеста.

Код:

AndroidManiefst. xml. ..

<activity
    ...
    android:screenOrientation="${fixedOrientation}">

build.gradle

android {
    def portrait = 'portrait'
    def landscape = 'landscape'
    ...
    manifestPlaceholders.fixedOrientation = "$landscape"
}

fixedOrientation в настоящее время находится в состоянии c, и я хочу сделать его динамическим c.

1 Ответ

1 голос
/ 07 марта 2020

есть ли способ проверить, является ли это планшет на build.gradle?

Не совсем.

build.gradle содержит инструкции по сборке, ничего более. И эти инструкции по сборке предназначены для создания приложений, которые, в принципе, могут go на телефоне, планшете, телевизоре, автомобиле, часах или Jumbotron [1]

[1], которые вам понадобятся. поставить свой собственный Android -приводимый Jumbotron

Самая близкая вещь, с которой Gradle будет связан, если вы хотите разные APK , один для телефонов, один для планшетов. Затем Gradle будет участвовать в настройке вкусов продуктов, необходимых для создания этих отдельных APK. Но я не знаю, как бы вы организовали распространение одного APK только на телефоны, а другой APK только на планшеты.

Если Gradle просто создает один APK, то этот APK предназначен как для телефонов, так и для телефонов. планшеты, и поэтому Gradle не может знать во время сборки, использует ли тот или иной пользователь телефон или планшет. Или Jumbotron.

...