29 QMutexLocker lock(stringCacheMutex());
30 JCachedStringFields::iterator it = cachedStringFields()->find(key);
31 if (it == cachedStringFields()->end()) {
33 QJniObject fieldValue = QJniObject::getStaticObjectField(
34 className, fieldName,
"Ljava/lang/String;");
35 if (!fieldValue.isValid()) {
36 cachedStringFields()->insert(key, {});
39 const QString string = fieldValue.toString();
40 cachedStringFields()->insert(key, string);
115 if (!env.registerNativeMethods(clazz,
117 Q_JNI_NATIVE_METHOD(QtBroadcastReceiver_jniOnReceive)
120 __android_log_print(ANDROID_LOG_FATAL, logTag,
121 "registerNativeMethods for BroadcastReceiver failed");
126 if (!env.registerNativeMethods(clazz,
128 Q_JNI_NATIVE_METHOD(QtBluetoothLE_leScanResult),
142 __android_log_print(ANDROID_LOG_FATAL, logTag,
143 "registerNativeMethods for QBLuetoothLE failed");
148 if (!env.registerNativeMethods(clazz,
157 __android_log_print(ANDROID_LOG_FATAL, logTag,
158 "registerNativeMethods for QBLuetoothLEServer failed");
163 if (!env.registerNativeMethods(clazz,
165 Q_JNI_NATIVE_METHOD(QtBluetoothSocketServer_errorOccurred),
166 Q_JNI_NATIVE_METHOD(QtBluetoothSocketServer_newSocket)
169 __android_log_print(ANDROID_LOG_FATAL, logTag,
170 "registerNativeMethods for SocketServer failed");
175 if (!env.registerNativeMethods(clazz,
177 Q_JNI_NATIVE_METHOD(QtBluetoothInputStreamThread_errorOccurred),
178 Q_JNI_NATIVE_METHOD(QtBluetoothInputStreamThread_readyData)
181 __android_log_print(ANDROID_LOG_FATAL, logTag,
182 "registerNativeMethods for InputStreamThread failed");
191Q_BLUETOOTH_EXPORT jint JNICALL JNI_OnLoad(JavaVM* vm,
void* )
193 static bool initialized =
false;
195 return JNI_VERSION_1_6;
199 JNIEnv *nativeEnvironment;
203 UnionJNIEnvToVoid uenv;
206 if (vm->GetEnv(&uenv.venv, JNI_VERSION_1_6) != JNI_OK) {
207 __android_log_print(ANDROID_LOG_FATAL, logTag,
"GetEnv failed");
211 const auto context = QNativeInterface::QAndroidApplication::context();
212 QtJniTypes::QtBtBroadcastReceiver::callStaticMethod<
void>(
"setContext", context);
214 if (!registerNatives()) {
215 __android_log_print(ANDROID_LOG_FATAL, logTag,
"registerNatives failed");
219 if (QT_BT_ANDROID().isDebugEnabled())
220 __android_log_print(ANDROID_LOG_INFO, logTag,
"Bluetooth start");
222 return JNI_VERSION_1_6;
#define FIND_AND_CHECK_CLASS(CLASS_NAME)