就像是asked before一样,如果您拥有Android的Qt代码:
ANativeActivity* theActivity = <something>;
ANativeActivity_setWindowFlags( theActivity,
AWINDOW_FLAG_DISMISS_KEYGUARD, 0 );
如何获取指向运行Qt应用程序的原生活动的指针(<something>
位)?
谢谢!
答案 0 :(得分:0)
如果你能获得一个指向Java QtActivity对象的C ++指针,那我就不太可能了,因为它们生活在两个不同的世界中。
但是,通过使用从Qt 5.2开始可用的QAndroidJniObject,您可以实现所需。以下是大纲:
步骤1:创建一个名为MyCppClass的C ++类,其函数名为setWindowFlag(int flag,int val)。
步骤2:使用名为setActivity(活动活动)的方法创建名为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的文档页面上找到。