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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章