Landscape mode in Qt-Android application

2019-06-01 20:12发布

I created a Qt/QML application and ported the application to Android. Now I'm able to run the application on the Android device. I want to fix the orientation mode to Landscape.

I manually edited the AndroidManifest.xml and set the android:screenOrientation="unspecified" to android:screenOrientation="sensorLandscape"

<activity
  android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation"
  android:name="org.qtproject.qt5.android.bindings.QtActivity"
  android:label="Engage"
  android:screenOrientation="sensorLandscape"
  android:launchMode="singleTop">

Each time when I deploy the project, the manifest is overwritten and reset to android:screenOrientation="unspecified"

2条回答
冷血范
2楼-- · 2019-06-01 20:54

I got a solution for this.

Add a folder in your project folder. I have named 'android-sources'. Copy your AndroidManifest.xml from android-build and paste to 'android-sources' folder. Open .pro file and add the following

OTHER_FILES += \
    android-sources/AndroidManifest.xml
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android-sources

Then open the AndroidManifest.xml

change the orientation

android:screenOrientation="sensorLandscape"
查看更多
别忘想泡老子
3楼-- · 2019-06-01 21:07

On Qt Forum the following solution is suggested:

Just go to the projects, running, click on details and create androidmanifest.xml, choose a directory. After that add it to your project if it didnt happen automatically and edit it. 4th line should look like this:

@<activity android:screenOrientation="unspecified" android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="@string/app_name">@ 

just change "unspecified" to "sensorLandscape" and save it.

It won't be overwritten every time you deploy.

查看更多
登录 后发表回答