summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2022-06-30 15:26:41 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-04 08:48:11 +0000
commitfb9104d5fa7eecb86d28104a1700b45069c18689 (patch)
treee5420111de8b8d1aac4c10b14e75afb3e084abfd
parent74c51f743120d25a22d81927802dff3df79f1555 (diff)
Unstringify Android QtBluetooth: native JNI callbacks
This commit removes the plain class/type strings from the JNI callback method registration. Fixes: QTBUG-104183 Change-Id: I5599eb18af2f5934961a66fdcee7b0cba8045269 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit 373378e74512de7b566725d4f81a28c1cef8280f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothLEServer.java7
-rw-r--r--src/bluetooth/android/androidbroadcastreceiver_p.h10
-rw-r--r--src/bluetooth/android/jni_android.cpp169
-rw-r--r--src/bluetooth/android/jni_android_p.h1
-rw-r--r--src/bluetooth/android/lowenergynotificationhub.cpp18
-rw-r--r--src/bluetooth/android/lowenergynotificationhub_p.h60
6 files changed, 151 insertions, 114 deletions
diff --git a/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothLEServer.java b/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothLEServer.java
index 4735ba1f..e8b4bd1f 100644
--- a/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothLEServer.java
+++ b/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothLEServer.java
@@ -342,7 +342,7 @@ public class QtBluetoothLEServer {
break;
}
- leServerConnectionStateChange(qtObject, qtErrorCode, qtControllerState);
+ leConnectionStateChange(qtObject, qtErrorCode, qtControllerState);
}
public synchronized void handleOnServiceAdded(int status, BluetoothGattService service)
@@ -730,7 +730,8 @@ public class QtBluetoothLEServer {
mGattServer = null;
mRemoteName = mRemoteAddress = "";
- leServerConnectionStateChange(qtObject, 0 /*NoError*/, 0 /*QLowEnergyController::UnconnectedState*/);
+ leConnectionStateChange(qtObject, 0 /*NoError*/,
+ 0 /*QLowEnergyController::UnconnectedState*/);
}
// This function is called from Qt thread
@@ -954,7 +955,7 @@ public class QtBluetoothLEServer {
}
};
- public native void leServerConnectionStateChange(long qtObject, int errorCode, int newState);
+ public native void leConnectionStateChange(long qtObject, int errorCode, int newState);
public native void leMtuChanged(long qtObject, int mtu);
public native void leServerAdvertisementError(long qtObject, int status);
public native void leServerCharacteristicChanged(long qtObject,
diff --git a/src/bluetooth/android/androidbroadcastreceiver_p.h b/src/bluetooth/android/androidbroadcastreceiver_p.h
index e13edac6..08ecd5fc 100644
--- a/src/bluetooth/android/androidbroadcastreceiver_p.h
+++ b/src/bluetooth/android/androidbroadcastreceiver_p.h
@@ -20,11 +20,13 @@
#include <QtCore/QObject>
#include <QtCore/private/qglobal_p.h>
#include <android/log.h>
+#include <android/jni_android_p.h>
#include <QtCore/QJniObject>
QT_BEGIN_NAMESPACE
-void QtBroadcastReceiver_jniOnReceive(JNIEnv *, jobject, jlong, jobject, jobject);
+void QtBroadcastReceiver_jniOnReceive(JNIEnv *, jobject, jlong,
+ QtJniTypes::Context, QtJniTypes::Intent);
class AndroidBroadcastReceiver: public QObject
{
@@ -38,9 +40,11 @@ public:
void unregisterReceiver();
protected:
- friend void QtBroadcastReceiver_jniOnReceive(JNIEnv *, jobject, jlong, jobject, jobject);
+ friend void QtBroadcastReceiver_jniOnReceive(JNIEnv *, jobject, jlong, QtJniTypes::Context,
+ QtJniTypes::Intent);
virtual void onReceive(JNIEnv *env, jobject context, jobject intent) = 0;
- friend void QtBluetoothLE_leScanResult(JNIEnv *, jobject, jlong, jobject, jint, jbyteArray);
+ friend void QtBluetoothLE_leScanResult(JNIEnv *, jobject, jlong, QtJniTypes::BluetoothDevice,
+ jint, jbyteArray);
virtual void onReceiveLeScan(JNIEnv *env, jobject jBluetoothDevice, jint rssi, jbyteArray scanRecord) = 0;
diff --git a/src/bluetooth/android/jni_android.cpp b/src/bluetooth/android/jni_android.cpp
index 5af1fea9..6392c07e 100644
--- a/src/bluetooth/android/jni_android.cpp
+++ b/src/bluetooth/android/jni_android.cpp
@@ -118,37 +118,44 @@ QJniObject valueForStaticField(JavaNames javaName, JavaNames javaFieldName)
}
void QtBroadcastReceiver_jniOnReceive(JNIEnv *env, jobject /*javaObject*/,
- jlong qtObject, jobject context, jobject intent)
+ jlong qtObject, QtJniTypes::Context context,
+ QtJniTypes::Intent intent)
{
reinterpret_cast<AndroidBroadcastReceiver*>(qtObject)->onReceive(env, context, intent);
}
+Q_DECLARE_JNI_NATIVE_METHOD(QtBroadcastReceiver_jniOnReceive, jniOnReceive)
static void QtBluetoothSocketServer_errorOccurred(JNIEnv */*env*/, jobject /*javaObject*/,
jlong qtObject, jint errorCode)
{
reinterpret_cast<ServerAcceptanceThread*>(qtObject)->javaThreadErrorOccurred(errorCode);
}
+Q_DECLARE_JNI_NATIVE_METHOD(QtBluetoothSocketServer_errorOccurred, errorOccurred)
static void QtBluetoothSocketServer_newSocket(JNIEnv */*env*/, jobject /*javaObject*/,
- jlong qtObject, jobject socket)
+ jlong qtObject, QtJniTypes::BluetoothSocket socket)
{
reinterpret_cast<ServerAcceptanceThread*>(qtObject)->javaNewSocket(socket);
}
+Q_DECLARE_JNI_NATIVE_METHOD(QtBluetoothSocketServer_newSocket, newSocket)
static void QtBluetoothInputStreamThread_errorOccurred(JNIEnv */*env*/, jobject /*javaObject*/,
jlong qtObject, jint errorCode)
{
reinterpret_cast<InputStreamThread*>(qtObject)->javaThreadErrorOccurred(errorCode);
}
+Q_DECLARE_JNI_NATIVE_METHOD(QtBluetoothInputStreamThread_errorOccurred, errorOccurred)
static void QtBluetoothInputStreamThread_readyData(JNIEnv */*env*/, jobject /*javaObject*/,
jlong qtObject, jbyteArray buffer, jint bufferLength)
{
reinterpret_cast<InputStreamThread*>(qtObject)->javaReadyRead(buffer, bufferLength);
}
+Q_DECLARE_JNI_NATIVE_METHOD(QtBluetoothInputStreamThread_readyData, readyData)
-void QtBluetoothLE_leScanResult(JNIEnv *env, jobject, jlong qtObject, jobject bluetoothDevice,
- jint rssi, jbyteArray scanRecord)
+void QtBluetoothLE_leScanResult(JNIEnv *env, jobject, jlong qtObject,
+ QtJniTypes::BluetoothDevice bluetoothDevice, jint rssi,
+ jbyteArray scanRecord)
{
if (Q_UNLIKELY(qtObject == 0))
return;
@@ -157,107 +164,94 @@ void QtBluetoothLE_leScanResult(JNIEnv *env, jobject, jlong qtObject, jobject bl
env, bluetoothDevice, rssi,
scanRecord);
}
-
-
-static JNINativeMethod methods[] = {
- {"jniOnReceive", "(JLandroid/content/Context;Landroid/content/Intent;)V",
- (void *) QtBroadcastReceiver_jniOnReceive},
-};
-
-static JNINativeMethod methods_le[] = {
- {"leScanResult", "(JLandroid/bluetooth/BluetoothDevice;I[B)V",
- (void *) QtBluetoothLE_leScanResult},
- {"leConnectionStateChange", "(JII)V",
- (void *) LowEnergyNotificationHub::lowEnergy_connectionChange},
- {"leMtuChanged", "(JI)V",
- (void *) LowEnergyNotificationHub::lowEnergy_mtuChanged},
- {"leServicesDiscovered", "(JILjava/lang/String;)V",
- (void *) LowEnergyNotificationHub::lowEnergy_servicesDiscovered},
- {"leServiceDetailDiscoveryFinished", "(JLjava/lang/String;II)V",
- (void *) LowEnergyNotificationHub::lowEnergy_serviceDetailsDiscovered},
- {"leCharacteristicRead", "(JLjava/lang/String;ILjava/lang/String;I[B)V",
- (void *) LowEnergyNotificationHub::lowEnergy_characteristicRead},
- {"leDescriptorRead", "(JLjava/lang/String;Ljava/lang/String;ILjava/lang/String;[B)V",
- (void *) LowEnergyNotificationHub::lowEnergy_descriptorRead},
- {"leCharacteristicWritten", "(JI[BI)V",
- (void *) LowEnergyNotificationHub::lowEnergy_characteristicWritten},
- {"leDescriptorWritten", "(JI[BI)V",
- (void *) LowEnergyNotificationHub::lowEnergy_descriptorWritten},
- {"leCharacteristicChanged", "(JI[B)V",
- (void *) LowEnergyNotificationHub::lowEnergy_characteristicChanged},
- {"leServiceError", "(JII)V",
- (void *) LowEnergyNotificationHub::lowEnergy_serviceError},
-};
-
-static JNINativeMethod methods_leServer[] = {
- {"leServerConnectionStateChange", "(JII)V",
- (void *) LowEnergyNotificationHub::lowEnergy_connectionChange},
- {"leMtuChanged", "(JI)V",
- (void *) LowEnergyNotificationHub::lowEnergy_mtuChanged},
- {"leServerAdvertisementError", "(JI)V",
- (void *) LowEnergyNotificationHub::lowEnergy_advertisementError},
- {"leServerCharacteristicChanged", "(JLandroid/bluetooth/BluetoothGattCharacteristic;[B)V",
- (void *) LowEnergyNotificationHub::lowEnergy_serverCharacteristicChanged},
- {"leServerDescriptorWritten", "(JLandroid/bluetooth/BluetoothGattDescriptor;[B)V",
- (void *) LowEnergyNotificationHub::lowEnergy_serverDescriptorWritten},
-};
-
-static JNINativeMethod methods_server[] = {
- {"errorOccurred", "(JI)V",
- (void *) QtBluetoothSocketServer_errorOccurred},
- {"newSocket", "(JLandroid/bluetooth/BluetoothSocket;)V",
- (void *) QtBluetoothSocketServer_newSocket},
-};
-
-static JNINativeMethod methods_inputStream[] = {
- {"errorOccurred", "(JI)V",
- (void *) QtBluetoothInputStreamThread_errorOccurred},
- {"readyData", "(J[BI)V",
- (void *) QtBluetoothInputStreamThread_readyData},
-};
+Q_DECLARE_JNI_NATIVE_METHOD(QtBluetoothLE_leScanResult, leScanResult)
static const char logTag[] = "QtBluetooth";
static const char classErrorMsg[] = "Can't find class \"%s\"";
-#define FIND_AND_CHECK_CLASS(CLASS_NAME) \
-clazz = env->FindClass(CLASS_NAME); \
-if (!clazz) { \
- __android_log_print(ANDROID_LOG_FATAL, logTag, classErrorMsg, CLASS_NAME); \
- return JNI_FALSE; \
-}
+#define FIND_AND_CHECK_CLASS(CLASS_NAME) \
+clazz = env.findClass<CLASS_NAME>(); \
+if (!clazz) { \
+ __android_log_print(ANDROID_LOG_FATAL, logTag, classErrorMsg, \
+ QtJniTypes::className<CLASS_NAME>().data()); \
+ return JNI_FALSE; \
+} \
-static bool registerNatives(JNIEnv *env)
+#define LEHUB_SCOPED_METHOD(Method) Q_JNI_NATIVE_SCOPED_METHOD(Method, LowEnergyNotificationHub)
+
+static bool registerNatives()
{
jclass clazz;
- FIND_AND_CHECK_CLASS("org/qtproject/qt/android/bluetooth/QtBluetoothBroadcastReceiver");
-
- if (env->RegisterNatives(clazz, methods, sizeof(methods) / sizeof(methods[0])) < 0) {
- __android_log_print(ANDROID_LOG_FATAL, logTag, "RegisterNatives for BroadcastReceiver failed");
+ QJniEnvironment env;
+
+ FIND_AND_CHECK_CLASS(QtJniTypes::QtBtBroadcastReceiver);
+ if (!env.registerNativeMethods(clazz,
+ {
+ Q_JNI_NATIVE_METHOD(QtBroadcastReceiver_jniOnReceive)
+ }))
+ {
+ __android_log_print(ANDROID_LOG_FATAL, logTag,
+ "registerNativeMethods for BroadcastReceiver failed");
return false;
}
- FIND_AND_CHECK_CLASS("org/qtproject/qt/android/bluetooth/QtBluetoothLE");
- if (env->RegisterNatives(clazz, methods_le, sizeof(methods_le) / sizeof(methods_le[0])) < 0) {
- __android_log_print(ANDROID_LOG_FATAL, logTag, "RegisterNatives for QBLuetoothLE failed");
+ FIND_AND_CHECK_CLASS(QtJniTypes::QtBtLECentral);
+ if (!env.registerNativeMethods(clazz,
+ {
+ Q_JNI_NATIVE_METHOD(QtBluetoothLE_leScanResult),
+ LEHUB_SCOPED_METHOD(lowEnergy_connectionChange),
+ LEHUB_SCOPED_METHOD(lowEnergy_mtuChanged),
+ LEHUB_SCOPED_METHOD(lowEnergy_servicesDiscovered),
+ LEHUB_SCOPED_METHOD(lowEnergy_serviceDetailsDiscovered),
+ LEHUB_SCOPED_METHOD(lowEnergy_characteristicRead),
+ LEHUB_SCOPED_METHOD(lowEnergy_descriptorRead),
+ LEHUB_SCOPED_METHOD(lowEnergy_characteristicWritten),
+ LEHUB_SCOPED_METHOD(lowEnergy_descriptorWritten),
+ LEHUB_SCOPED_METHOD(lowEnergy_characteristicChanged),
+ LEHUB_SCOPED_METHOD(lowEnergy_serviceError)
+ }))
+ {
+ __android_log_print(ANDROID_LOG_FATAL, logTag,
+ "registerNativeMethods for QBLuetoothLE failed");
return false;
}
- FIND_AND_CHECK_CLASS("org/qtproject/qt/android/bluetooth/QtBluetoothLEServer");
- if (env->RegisterNatives(clazz, methods_leServer, sizeof(methods_leServer) / sizeof(methods_leServer[0])) < 0) {
- __android_log_print(ANDROID_LOG_FATAL, logTag, "RegisterNatives for QBLuetoothLEServer failed");
+ FIND_AND_CHECK_CLASS(QtJniTypes::QtBtLEServer);
+ if (!env.registerNativeMethods(clazz,
+ {
+ LEHUB_SCOPED_METHOD(lowEnergy_connectionChange),
+ LEHUB_SCOPED_METHOD(lowEnergy_mtuChanged),
+ LEHUB_SCOPED_METHOD(lowEnergy_advertisementError),
+ LEHUB_SCOPED_METHOD(lowEnergy_serverCharacteristicChanged),
+ LEHUB_SCOPED_METHOD(lowEnergy_serverDescriptorWritten)
+ }))
+ {
+ __android_log_print(ANDROID_LOG_FATAL, logTag,
+ "registerNativeMethods for QBLuetoothLEServer failed");
return false;
}
- FIND_AND_CHECK_CLASS("org/qtproject/qt/android/bluetooth/QtBluetoothSocketServer");
- if (env->RegisterNatives(clazz, methods_server, sizeof(methods_server) / sizeof(methods_server[0])) < 0) {
- __android_log_print(ANDROID_LOG_FATAL, logTag, "RegisterNatives for SocketServer failed");
+ FIND_AND_CHECK_CLASS(QtJniTypes::QtBtSocketServer);
+ if (!env.registerNativeMethods(clazz,
+ {
+ Q_JNI_NATIVE_METHOD(QtBluetoothSocketServer_errorOccurred),
+ Q_JNI_NATIVE_METHOD(QtBluetoothSocketServer_newSocket)
+ }))
+ {
+ __android_log_print(ANDROID_LOG_FATAL, logTag,
+ "registerNativeMethods for SocketServer failed");
return false;
}
- FIND_AND_CHECK_CLASS("org/qtproject/qt/android/bluetooth/QtBluetoothInputStreamThread");
- if (env->RegisterNatives(clazz, methods_inputStream,
- sizeof(methods_inputStream) / sizeof(methods_inputStream[0])) < 0) {
- __android_log_print(ANDROID_LOG_FATAL, logTag, "RegisterNatives for InputStreamThread failed");
+ FIND_AND_CHECK_CLASS(QtJniTypes::QtBtInputStreamThread);
+ if (!env.registerNativeMethods(clazz,
+ {
+ Q_JNI_NATIVE_METHOD(QtBluetoothInputStreamThread_errorOccurred),
+ Q_JNI_NATIVE_METHOD(QtBluetoothInputStreamThread_readyData)
+ }))
+ {
+ __android_log_print(ANDROID_LOG_FATAL, logTag,
+ "registerNativeMethods for InputStreamThread failed");
return false;
}
@@ -284,8 +278,7 @@ Q_BLUETOOTH_EXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* /*reserved*/)
return -1;
}
- JNIEnv *env = uenv.nativeEnvironment;
- if (!registerNatives(env)) {
+ if (!registerNatives()) {
__android_log_print(ANDROID_LOG_FATAL, logTag, "registerNatives failed");
return -1;
}
diff --git a/src/bluetooth/android/jni_android_p.h b/src/bluetooth/android/jni_android_p.h
index d5b2e1e0..d4da9075 100644
--- a/src/bluetooth/android/jni_android_p.h
+++ b/src/bluetooth/android/jni_android_p.h
@@ -18,6 +18,7 @@
#include "qbluetooth.h"
#include <QtCore/QJniObject>
#include <QtCore/private/qglobal_p.h>
+#include <QtCore/qcoreapplication_platform.h>
QT_BEGIN_NAMESPACE
diff --git a/src/bluetooth/android/lowenergynotificationhub.cpp b/src/bluetooth/android/lowenergynotificationhub.cpp
index b1040d5c..0e5945a3 100644
--- a/src/bluetooth/android/lowenergynotificationhub.cpp
+++ b/src/bluetooth/android/lowenergynotificationhub.cpp
@@ -90,7 +90,7 @@ void LowEnergyNotificationHub::lowEnergy_mtuChanged(
}
void LowEnergyNotificationHub::lowEnergy_servicesDiscovered(
- JNIEnv *, jobject, jlong qtObject, jint errorCode, jobject uuidList)
+ JNIEnv *, jobject, jlong qtObject, jint errorCode, jstring uuidList)
{
lock.lockForRead();
LowEnergyNotificationHub *hub = hubMap()->value(qtObject);
@@ -106,7 +106,7 @@ void LowEnergyNotificationHub::lowEnergy_servicesDiscovered(
}
void LowEnergyNotificationHub::lowEnergy_serviceDetailsDiscovered(
- JNIEnv *, jobject, jlong qtObject, jobject uuid, jint startHandle,
+ JNIEnv *, jobject, jlong qtObject, jstring uuid, jint startHandle,
jint endHandle)
{
lock.lockForRead();
@@ -124,8 +124,8 @@ void LowEnergyNotificationHub::lowEnergy_serviceDetailsDiscovered(
}
void LowEnergyNotificationHub::lowEnergy_characteristicRead(
- JNIEnv *env, jobject, jlong qtObject, jobject sUuid, jint handle,
- jobject cUuid, jint properties, jbyteArray data)
+ JNIEnv *env, jobject, jlong qtObject, jstring sUuid, jint handle,
+ jstring cUuid, jint properties, jbyteArray data)
{
lock.lockForRead();
LowEnergyNotificationHub *hub = hubMap()->value(qtObject);
@@ -159,8 +159,8 @@ void LowEnergyNotificationHub::lowEnergy_characteristicRead(
}
void LowEnergyNotificationHub::lowEnergy_descriptorRead(
- JNIEnv *env, jobject, jlong qtObject, jobject sUuid, jobject cUuid,
- jint handle, jobject dUuid, jbyteArray data)
+ JNIEnv *env, jobject, jlong qtObject, jstring sUuid, jstring cUuid,
+ jint handle, jstring dUuid, jbyteArray data)
{
lock.lockForRead();
LowEnergyNotificationHub *hub = hubMap()->value(qtObject);
@@ -244,7 +244,8 @@ void LowEnergyNotificationHub::lowEnergy_descriptorWritten(
}
void LowEnergyNotificationHub::lowEnergy_serverDescriptorWritten(
- JNIEnv *env, jobject, jlong qtObject, jobject descriptor, jbyteArray newValue)
+ JNIEnv *env, jobject, jlong qtObject, QtJniTypes::BluetoothGattDescriptor descriptor,
+ jbyteArray newValue)
{
lock.lockForRead();
LowEnergyNotificationHub *hub = hubMap()->value(qtObject);
@@ -287,7 +288,8 @@ void LowEnergyNotificationHub::lowEnergy_characteristicChanged(
}
void LowEnergyNotificationHub::lowEnergy_serverCharacteristicChanged(
- JNIEnv *env, jobject, jlong qtObject, jobject characteristic, jbyteArray newValue)
+ JNIEnv *env, jobject, jlong qtObject,
+ QtJniTypes::BluetoothGattCharacteristic characteristic, jbyteArray newValue)
{
lock.lockForRead();
LowEnergyNotificationHub *hub = hubMap()->value(qtObject);
diff --git a/src/bluetooth/android/lowenergynotificationhub_p.h b/src/bluetooth/android/lowenergynotificationhub_p.h
index 222dbbed..ac407057 100644
--- a/src/bluetooth/android/lowenergynotificationhub_p.h
+++ b/src/bluetooth/android/lowenergynotificationhub_p.h
@@ -22,6 +22,7 @@
#include <QtBluetooth/QLowEnergyController>
#include <QtBluetooth/QLowEnergyService>
#include <QtCore/private/qglobal_p.h>
+#include "android/jni_android_p.h"
#include <jni.h>
#include <QtBluetooth/QLowEnergyCharacteristic>
@@ -38,36 +39,71 @@ public:
static void lowEnergy_connectionChange(JNIEnv*, jobject, jlong qtObject,
jint errorCode, jint newState);
- static void lowEnergy_mtuChanged(JNIEnv*, jobject, jlong qtObject,
- jint mtu);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_connectionChange,
+ leConnectionStateChange)
+
+ static void lowEnergy_mtuChanged(JNIEnv*, jobject, jlong qtObject, jint mtu);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_mtuChanged, leMtuChanged)
+
static void lowEnergy_servicesDiscovered(JNIEnv*, jobject, jlong qtObject,
- jint errorCode, jobject uuidList);
+ jint errorCode, jstring uuidList);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_servicesDiscovered,
+ leServicesDiscovered)
+
static void lowEnergy_serviceDetailsDiscovered(JNIEnv *, jobject,
- jlong qtObject, jobject uuid,
+ jlong qtObject, jstring uuid,
jint startHandle, jint endHandle);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_serviceDetailsDiscovered,
+ leServiceDetailDiscoveryFinished)
+
static void lowEnergy_characteristicRead(JNIEnv*env, jobject, jlong qtObject,
- jobject serviceUuid,
- jint handle, jobject charUuid,
+ jstring serviceUuid,
+ jint handle, jstring charUuid,
jint properties, jbyteArray data);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_characteristicRead,
+ leCharacteristicRead)
+
static void lowEnergy_descriptorRead(JNIEnv *env, jobject, jlong qtObject,
- jobject sUuid, jobject cUuid,
- jint handle, jobject dUuid, jbyteArray data);
+ jstring sUuid, jstring cUuid,
+ jint handle, jstring dUuid, jbyteArray data);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_descriptorRead, leDescriptorRead)
+
static void lowEnergy_characteristicWritten(JNIEnv *, jobject, jlong qtObject,
jint charHandle, jbyteArray data,
jint errorCode);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_characteristicWritten,
+ leCharacteristicWritten)
+
static void lowEnergy_descriptorWritten(JNIEnv *, jobject, jlong qtObject,
jint descHandle, jbyteArray data,
jint errorCode);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_descriptorWritten,
+ leDescriptorWritten)
+
static void lowEnergy_serverDescriptorWritten(JNIEnv *, jobject, jlong qtObject,
- jobject descriptor, jbyteArray newValue);
+ QtJniTypes::BluetoothGattDescriptor descriptor,
+ jbyteArray newValue);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_serverDescriptorWritten,
+ leServerDescriptorWritten)
+
static void lowEnergy_characteristicChanged(JNIEnv *, jobject, jlong qtObject,
jint charHandle, jbyteArray data);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_characteristicChanged,
+ leCharacteristicChanged)
+
static void lowEnergy_serverCharacteristicChanged(JNIEnv *, jobject, jlong qtObject,
- jobject characteristic, jbyteArray newValue);
+ QtJniTypes::BluetoothGattCharacteristic characteristic,
+ jbyteArray newValue);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_serverCharacteristicChanged,
+ leServerCharacteristicChanged)
+
static void lowEnergy_serviceError(JNIEnv *, jobject, jlong qtObject,
jint attributeHandle, int errorCode);
- static void lowEnergy_advertisementError(JNIEnv *, jobject, jlong qtObject,
- jint status);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_serviceError, leServiceError)
+
+ static void lowEnergy_advertisementError(JNIEnv *, jobject, jlong qtObject, jint status);
+ Q_DECLARE_JNI_NATIVE_METHOD_IN_CURRENT_SCOPE(lowEnergy_advertisementError,
+ leServerAdvertisementError)
QJniObject javaObject()
{