就像是askedbefore,如果您有Android版你的Qt代碼:如何獲取運行Qt Android應用程序的本地活動的指針?
ANativeActivity* theActivity = <something>;
ANativeActivity_setWindowFlags(theActivity,
AWINDOW_FLAG_DISMISS_KEYGUARD, 0);
你怎麼能獲得一個指向本地活動運行你的Qt應用(應用<something>
位)?
謝謝!
就像是askedbefore,如果您有Android版你的Qt代碼:如何獲取運行Qt Android應用程序的本地活動的指針?
ANativeActivity* theActivity = <something>;
ANativeActivity_setWindowFlags(theActivity,
AWINDOW_FLAG_DISMISS_KEYGUARD, 0);
你怎麼能獲得一個指向本地活動運行你的Qt應用(應用<something>
位)?
謝謝!
如果你能得到一個指向Java QtActivity對象的C++指針,我不是很積極,因爲它們生活在兩個不同的世界。
但是,您可以通過使用從Qt 5.2開始可用的QAndroidJniObject來實現所需的功能。以下是大綱:
步驟1:使用名爲setWindowFlag(int flag,int val)的函數創建一個名爲MyCppClass的C++類。
步驟2:使用名爲setActivity(Activity activity)的方法創建一個名爲MyJavaClass的Java類。創建另一個名爲setWindowFlag(int flag,int val)的方法,您可以在其中使用Android API設置窗口的標誌。
第3步:在您的Java類QtActivity中,調用MyJavaClass.setActivity(this)。我在onCreate()方法和加載Qt應用程序之前執行此操作。
第4步:在MyCppClass中,使用QAndroidJniObject將C++函數setWindowFlag()綁定到Java方法MyJavaClass.setWindowFlag()。
更詳細的信息可以在QAndroidJniObject的文檔頁面找到。