标签: qandroidjniobject

如何使用Qt Jni类"QAndroidJniObject"

我是"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)

c++ java qt android qandroidjniobject

8
推荐指数
0
解决办法
3659
查看次数

QT / QML Android应用程序,单击通知栏时打开应用程序

我对Android应用程序进行了QT。当我单击按钮时,通知栏会在平板电脑上看到。但是,如果单击“通知”,我的应用程序将打开/聚焦(不知道)并带有黑色窗口。简单地做到这一点。我的代码是:

package org.ays.operation;

import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.app.PendingIntent;
import android.content.Intent;


public class NotificationClient extends org.qtproject.qt5.android.bindings.QtActivity
{
     private static NotificationManager m_notificationManager;
     private static Notification.Builder m_builder;
     private static NotificationClient m_instance;
     private static PendingIntent contentIntent;
     private static Intent intent;


     public NotificationClient()
     {
         m_instance = this;
     }

     public static  void notify2()
     {
         intent = new Intent(m_instance, NotificationClient.class);
         contentIntent = PendingIntent.getActivity(m_instance, 0, intent,
                                         PendingIntent.FLAG_UPDATE_CURRENT);

         if (m_notificationManager == null) {
             m_notificationManager = (NotificationManager)m_instance.getSystemService(Context.NOTIFICATION_SERVICE);
             m_builder = new Notification.Builder(m_instance);
             m_builder.setSmallIcon(R.drawable.icon);
             m_builder.setContentTitle("A message from Qt!");
             m_builder.setDefaults(Notification.DEFAULT_SOUND); …
Run Code Online (Sandbox Code Playgroud)

java-native-interface qt qml android-notifications qandroidjniobject

5
推荐指数
1
解决办法
447
查看次数