Qt 调用具有 1 个以上参数的 java 方法
Qt call java method with more than 1 argument
我检查了适用于 android 的 Qt Notifier 示例:https://doc.qt.io/qt-5/qtandroidextras-notification-example.html 在此示例中,使用 2 个参数调用 Java 方法,如下所示:
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>());
}
我很难理解我应该在这里传递哪些参数来调用带有 2 个参数而不是一个参数的函数。例如,该函数当前采用 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 部分?
它应该是
QAndroidJniObject::callStaticMethod<void>("org/qtproject/example/notification/NotificationClient",
"notify",
"(Ljava/lang/String;Ljava/lang/String;)V",
javaNotification.object<jstring>(),
somethingelse.object<jstring>());
如此处所述。
相关文章:
- Android:使用 c++ 中的 byte[] 参数调用 java 方法
- 将参数从C/C++JNI传递给Java,得到修改后的值
- JNI Java包装:如何传递byte[]参数
- Qt 调用具有 1 个以上参数的 java 方法
- 将对象传递给 Java C++与使用 JNI 逐个设置对象参数
- 在为 Java 编译动态链接文件时,我应该选择哪些 g++ 参数
- Java函数在C++中具有任意数量的参数
- Java:加载带有char **的C DLL,将回调作为参数
- 如何使用 2 个字符串参数从 jni java 库调用
- SWIG - Java 代理类数组参数
- jvm在尝试将TCHAR类型发送到接受字符串作为参数的java函数时崩溃
- 为什么 C++ 和 Java 中的构造函数调用需要显式类型参数
- 将Java Script函数作为参数传递给C++函数
- 通过c++将参数发送到java
- 如何在C++中编写类java参数级接口实现
- 静态 c++ 对象中的 JNI 环境指针并调用连续两次使用字符串参数的 Java 函数会使 JVM 崩溃
- Java 与传递参数的 C++
- C++ 将指针作为参数传递,并在 Java 中传递指针
- C++:像在 Java 中一样将接口作为参数传递
- 如何从c++应用程序启动java应用程序,传递参数并等待java应用程序的结果