Qt вызывает Java-метод с более чем одним аргументом - PullRequest
0 голосов
/ 26 сентября 2019

Я изучаю пример Qt Notifier для Android: https://doc.qt.io/qt-5/qtandroidextras-notification-example.html В этом примере метод Java вызывается с 2 параметрами, например так:

void NotificationClient::updateAndroidNotification()
{
    QAndroidJniObject javaNotification = QAndroidJniObject::fromString(m_notification);
    QAndroidJniObject::callStaticMethod<void>("org/qtproject/example/notification/NotificationClient",
                                       "notify",
                                       "(Ljava/lang/String;)V",
                                       javaNotification.object<jstring>());
}

Мне трудно понять, чтопараметры, которые я должен передать здесь, чтобы вызвать функцию с двумя параметрами, а не с однимНапример, функция в настоящее время принимает 1 параметр:

public static void notify(String s)
{
    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.setContentText(s);
        m_notificationManager.notify(1, m_builder.build());
    }

Я могу добавить еще один в сам метод (public static void notify(String s, String x)), но как обработать часть cpp?

1 Ответ

1 голос
/ 26 сентября 2019

Это должно быть

QAndroidJniObject::callStaticMethod<void>("org/qtproject/example/notification/NotificationClient",
                                   "notify",
                                   "(Ljava/lang/String;Ljava/lang/String;)V",
                                   javaNotification.object<jstring>(), 
                                   somethingelse.object<jstring>());

как объяснено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...