本页内容

编辑 Android 清单文件

您可以在“Projects ” > “Build Settings ” > “Build Android APK ”中的配置选项中,指定应用开发过程中androiddeployqt 工具所需的所有设置。

在“项目”中的“构建设置”选项卡中构建 Android APK

您只需一个 Android 清单文件来指定 Android 特有的设置,例如应用程序图标或启动画面。

但是,您需要该清单文件才能在 Play 商店中发布该软件包。

如果您使用 CMake 作为构建系统,则必须在CMakeList.txt 文件中指定 Android 软件包源目录QT_ANDROID_PACKAGE_SOURCE_DIR

创建清单文件

要使用Qt Creator 创建 Android 清单文件:

  1. 转到Projects >Build Settings >Build Android APK ,然后选择“Create Templates ”。
  2. 检查Android package source directory 中的路径。

    “创建模板”对话框

  3. 如果您计划扩展 Qt 应用程序的 Java 部分,请选择“Copy the Gradle files to Android directory ”。
  4. 选择“Finish ”可将模板文件复制到android 目录,并以文本格式打开清单文件以便编辑。

设置清单文件选项

要编辑清单文件:

  • 在“Projects ”中,选择清单文件。
  • 转到“Tools ” > “Android ” > “Manifest XML Source ”。

Android 清单 XML 源代码编辑器

有关在 Android 清单文件中设置选项的更多信息,请参阅《Qt for Android 清单文件配置》

您可以使用编辑器设置应用程序图标、启动画面和权限。

屏幕方向

在“<activity> ”部分,设置“android:screenOrientation ”选项,以根据传感器读数或用户偏好确定屏幕方向。默认值为“unspecified ”。

屏幕方向选项
方向描述
unspecified由系统自动选择屏幕方向。系统采用的策略(以及在特定情境下做出的选择)可能因设备而异。
behind使用活动堆栈中紧随其下的活动的相同方向。
landscape横向,即显示屏宽度大于高度。
portrait纵向,即显示屏高度大于宽度。
reverseLandscape与常规横向方向相反的横向方向。
reversePortrait与常规纵向相反方向的纵向。
sensorLandscape横向,但根据设备传感器,可以是正常横向或反向横向。即使用户已锁定基于传感器的旋转,系统仍会使用传感器。
sensorPortrait纵向模式,但会根据设备传感器自动切换为标准纵向或反向纵向。即使用户已锁定基于传感器的旋转功能,系统仍会使用传感器。
userLandscape横向模式,但会根据设备传感器和用户偏好,在标准横向和反向横向之间切换。
userPortrait纵向模式,但根据设备传感器和用户偏好,可能是标准纵向或反向纵向。
sensor屏幕方向由设备的方向传感器决定。屏幕方向取决于用户握持设备的方式。当用户旋转设备时,屏幕方向会随之改变。不过,某些设备默认情况下不会旋转到所有四种可能的方向。若要支持所有四种方向,请选择“完全使用传感器”选项。 即使用户锁定了基于传感器的旋转功能,系统仍会使用传感器。
fullSensor对于四种方向中的任何一种,方向均由设备方向传感器决定。这与“传感器”选项类似,不同之处在于它允许四种可能的屏幕方向,无论设备通常如何设置。例如,某些设备通常不会使用倒置纵向或倒置横向,但此选项可启用这些方向。
noSensor方向的确定不参考物理方向传感器。传感器将被忽略,因此显示屏不会根据用户移动设备的方式进行旋转。
user用户当前的首选方向。
fullUser如果用户已锁定基于传感器的旋转功能,则此选项的行为与“用户”选项相同。否则,其行为与“完全传感器”选项相同,并允许四种可能的屏幕方向中的任意一种。
locked将屏幕方向锁定为当前旋转状态,无论该状态如何。

图标

要根据屏幕密度设置用作应用程序图标的图像,请转至“Tools ” > “Android ” > “Icon ”。

图标编辑器

您可以设置不同的图片,分别在低、中、高和超高 DPI 显示屏上作为应用程序图标和启动画面显示。以下列表总结了通常与各类别相关的 DPI 值:

  • 低密度 (LDPI):约 120dpi
  • 中密度 (MDPI):约 160 dpi
  • 高密度 (HDPI):约 240dpi
  • 超高密度 (XHDPI):约 320dpi
  • 超超高密度 (XXHDPI):约 480 dpi
  • 超超超高密度 (XXXHDPI):约 640 dpi

若要从图像生成一套适用于每种像素密度的相应分辨率图标,请选择“Select Master Icon ”。

要清除图标,请选择“Clear Icon ”。

启动画面

要指定启动画面的设置,请转到“Tools ” > “Android ” > “Splash Screen ”。

启动画面编辑器

根据设备的方向和屏幕分辨率,选择要作为启动画面的图像。

在“Select Master Image ”、“Select Portrait Image ”和“Select Landscape Image ”中选择分辨率最高的图像。

Image show mode 中,选择是将启动画面居中显示在设备屏幕上,还是将其缩放以填满整个屏幕。

Background color 中设置背景颜色。

默认情况下,绘制活动会隐藏启动画面。若要使其在调用QNativeInterface::QAndroidApplication::hideSplashScreen() 之前保持可见,请选择Sticky splash screen

选择“Clear All ”可重置所有设置或删除所有图像。

权限

从 Android 6.0(API 23)开始,应用程序必须在运行时请求权限(参见QCoreApplication::requestPermission())。对于较低的 Android API 级别,用户必须在安装应用程序时授予这些权限。随后,Android 操作系统会授予应用程序访问相应数据和功能的权限。

设置权限的方法:

  1. 前往Tools >Android >Permissions

    权限编辑器

  2. 在下拉列表中选择一项权限,然后选择“Add ”将其添加到“Permission ”列表中。
  3. 选择该权限,然后选择“Edit Attributes ”以设置该权限的属性。

    权限属性编辑器

  4. 在“Attribute ”中,选择一个属性。
  5. 在“Value ”中,为该属性输入一个值。
  6. 选择“Add ”以设置该属性和值。
  7. 选择“OK ”将该属性添加到权限中。

android.permission.ACCESS_BACKGROUND_LOCATION 选择“Include default permissions for Qt modules ”和“Include default features for Qt modules ”,以添加 Qt 库所需的权限,例如用于 Qt Positioning

另请参阅 《如何:为 Android 开发》《Android 开发》和《Qt for Android 清单文件配置》

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.