Qt for Android之AndroidManifest.xml详解

一、AndroidManifest.xml文件的创建

很简单,有图有真相……
在这里插入图片描述

二、AndroidManifest.xml文件的介绍

还是先上图
在这里插入图片描述
1、顶部红色波浪线标记的位置可以切换至xml源码;
2、这个页面就三个大的groupBox,分别是PackageApplicationPermissions

下面主要说这三块:
Package

  • package name:包名,默认好像是org.qtproject.example,挺随意的。但是如果你在同一个android机上开发多个qt android项目的时候,最好还是从包名的命名上区分下,不然会发生覆盖。

说明:之前有一点没在意,最近看到这篇博文上说,你在该工程里需要创建的java类源码地址和这个包名还有着千丝万缕的关系。意思就是你的java文件须放在 android/src/org/qtproject/example/文件下。但是我之前不是这样做的,如图我的java文件路径是android_sources/src/com/qt/usejava,也是可以的。所以他的这个说法我再去验证验证……

  • Version code和Version name:这个就是app版本号,帮助你做版本控制;
  • Minimum required SDK和Target SDK:这个东西别乱改,我之前想的我的Android机子系统是8.0的,我就把Target SDK改到了Android 8.0。然后悲剧了,屏幕亮度调节功能不起作用了……还是规规矩矩的改回去就好了。……尬

Application

  • Application name:好像没什么用,我试过;
  • Activity name:App名称,可英文、中文、数字;
  • Run:这个必须是工程名!!!
  • Application icon:App图标,三种像素大小的(LDPI、MDPI、HDPI)。

permissions

  • add and remove:这个不用说了吧,手动增加和删除android权限。(这个属于静态权限申请)

说明:Android6.0及以上系统,有些权限是需要动态申请的。具体哪些,你用到时就知道了。

/*************************************************
 <函数名称>    request_Android_Permission
 <功    能>   动态申请android权限
 <参数说明>    str_permission: 具体权限
 <返回值>     是否成功
 <函数说明>   **注意:该函数只能在QT5.10版本及以上才能使用。**
 <作    者>   mcq
 <时    间>   20181201
**************************************************/
bool request_Android_Permission(const QString &str_permission)
{
#ifdef Q_OS_ANDROID
    QtAndroid::PermissionResult r = QtAndroid::checkPermission(str_permission);
    if(r == QtAndroid::PermissionResult::Denied)
    {
        QtAndroid::requestPermissionsSync( QStringList() << str_permission );
        r = QtAndroid::checkPermission(str_permission);
        if(r == QtAndroid::PermissionResult::Denied)
        {
            return false;
        }
    }
    return true;
#else
    return false;
#endif
}

如果你的Qt版本比较低,可以看看这篇文章……


另外,有时候需要将App强制横屏之类的操作:
将AndroidManifest.xml切换至源码状态,ctrl+f查找“android:screenOrientation”,然后将其设置修改为:android:screenOrientation=“sensorLandscape”
其它的可供选的设置方式如下:
“unspecified”:默认值由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.
“landscape”:横屏显示(宽比高要长)
“portrait”:竖屏显示(高比宽要长)
“user”:用户当前首选的方向
“behind”:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
“sensor”:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
“nosensor”:忽略物理感应器,这样就不会随着用户旋转设备而更改了(”unspecified”设置除外)。
————————————————

参考文章:
https://blog.csdn.net/luoyayun361/article/details/72993841
http://www.kokojia.com/article/17626.html
https://www.cnblogs.com/warmSnowFY/p/9542376.html

发布了32 篇原创文章 · 获赞 4 · 访问量 3387

猜你喜欢

转载自blog.csdn.net/qq_35241071/article/details/101051259