Qt-Android应用程序中的横向模式

pxy2qtax  于 2023-01-07  发布在  Android
关注(0)|答案(3)|浏览(152)

我创建了一个Qt/QML应用程序并将其移植到Android上。现在我可以在Android设备上运行该应用程序了。我想将方向模式固定为Landscape。
我手动编辑了AndroidManifest.xml并将android:screenOrientation="unspecified"设置为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">

每次部署项目时,清单都会被覆盖并重置为android:screenOrientation="unspecified"

wpx232ag

wpx232ag1#

我有个解决办法。
在您的项目文件夹中添加一个文件夹。我命名为“android-sources”。从android-build复制您的AndroidManifest.xml并粘贴到“android-sources”文件夹。打开.pro文件并添加以下内容

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

然后打开AndroidManifest.xml
改变方向

android:screenOrientation="sensorLandscape"
xcitsw88

xcitsw882#

Qt Forum上,建议使用以下解决方案:
只需进入项目,运行,点击详细信息并创建androidmanifest.xml,选择一个目录。之后,如果它没有自动发生,将其添加到您的项目并编辑它。第4行应该如下所示:

@<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">@

只需将“未指定”更改为“sensorLandscape”并保存即可。
它不会在每次部署时被覆盖。

jecbmhm3

jecbmhm33#

我遇到了和你一样的问题,最后我找到了这个问题的解决方案。按照以下步骤:
1.选择项目〉构建〉构建Android APK〉创建模板。
1.检查Android包源目录中的路径。
1.如果您计划扩展Qt应用程序的Java部分,请选择将Gradle文件复制到Android目录
1.选择Finish将模板文件复制到android目录并打开manifest文件进行编辑。
1.在屏幕方向字段中选择“SensorLandscape”。

相关问题