我是"Qt for Android"的初学者,现在我用它来开发基于mobile的软件通信.我开发了java函数,它将android的api称为.java文档中的类.为了简化UI开发时,UI基于Qt Widget程序.然后我使用Qt-JNI类"QAndroidJniObject"根据Qt5.2 API文件调用这些java函数.Android资源文件存放在目录:./ android/src/com/comm/sipcall/SipCallSend.java.由于这方面的信息较少,我根据API文档开发了java和c ++程序.但是我遇到了以下问题,也希望得到答案:1)Qt程序是基于Qt Widget.java程序需要获取当前的应用程序对象Context才能初始化java对象.我开发的c ++代码如下:
//c++:
QPlatformNativeInterface *interface = QApplication::platformNativeInterface();
jobject activity = (jobject)interface->nativeResourceForIntegration("QtActivity");
QAndroidJniObject* at = new QAndroidJniObject(activity);
QAndroidJniObject appctx = at->callObjectMethod("getApplicationContext","()Landroid/content/Context;");
//.pro?
QT += core gui gui-private
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
2)java类包含一个构造函数和三个公共函数:
java:
package com.comm.sipcall;
improt XXXX
....
....
public class SipCallSend extends Activity {
private Context context; // ??QT?context
public String sipToAddress = "";
public String sipDomain = "";
public String user_name = "";
public String pass_word = "";
public SipCallSend(){
Log.i("ddd","init");
sipToAddress = "";
sipDomain …Run Code Online (Sandbox Code Playgroud)