簡體   English   中英

將Android事件綁定到Qt應用程序

[英]Binding Android events to Qt application

我檢查了自動生成的QtActivity.javaQtApplication.java ,發現了框架和實際實現以及它們遵循的簡單格式。 然而,來自這兩個來源,我可以只去盡可能的m_delegateObject的對象QtApplication這是其方法是在從機器人接收事件調用的對象。

但是我仍然不明白委托對象從何而來。 public static void setQtActivityDelegate(Object listener)但我不知道最終會在哪里調用。 並且由於在委托上使用了反射,因此我從邏輯上假設它確實是另一個java對象,而不是實際本機應用程序的委托。

我的問題是如何使用哪種機制(Qt meta,JNI ...?)到達實際的C ++應用程序並將自定義事件轉發給它。

沒有完全按照您的要求進行操作,但是如果您收到了Java通知,則可以從Java調用C ++代碼:

  • 在Java中,您必須聲明本機函數

包com.test.util; ...私有靜態本機無效CallCpp(String tag,int prm1,int prm2,int prm3,String prmString);

並在C ++端注冊本地fn

  JNINativeMethod methods[] {{"CallCpp","(Ljava/lang/String;IIILjava/lang/String;)V", reinterpret_cast<void> *>(CallCpp)}, }; QAndroidJniObject javaClass("com/tests/util/AndroidEnv"); QAndroidJniEnvironment env; jclass objectClass = env->GetObjectClass(javaClass.object<jobject>()); env->RegisterNatives(objectClass, methods, sizeof(methods) / sizeof(methods[0])); env->DeleteLocalRef(objectClass); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM