void CAEDRInitialize(ca_thread_pool_t handle) { OIC_LOG(DEBUG, TAG, "CAEDRInitialize"); g_threadPoolHandle = handle; CAEDRCoreJniInit(); CAEDRJniInitContext(); // init mutex CAEDRCreateMutex(); bool isAttached = false; JNIEnv* env; jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6); if (JNI_OK != res) { OIC_LOG(DEBUG, TAG, "CAEDRInitialize - Could not get JNIEnv pointer"); res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL); if (JNI_OK != res) { OIC_LOG(ERROR, TAG, "AttachCurrentThread failed"); return; } isAttached = true; } jstring jni_address = CAEDRNativeGetLocalDeviceAddress(env); if (jni_address) { const char* localAddress = (*env)->GetStringUTFChars(env, jni_address, NULL); OIC_LOG_V(DEBUG, TAG, "My BT Address is %s", localAddress); (*env)->ReleaseStringUTFChars(env, jni_address, localAddress); } ca_mutex_lock(g_mutexStateList); CAEDRNativeCreateDeviceStateList(); ca_mutex_unlock(g_mutexStateList); ca_mutex_lock(g_mutexObjectList); CAEDRNativeCreateDeviceSocketList(); ca_mutex_unlock(g_mutexObjectList); if (isAttached) { (*g_jvm)->DetachCurrentThread(g_jvm); } if (g_context) { CAEDRCreateJNIInterfaceObject(g_context); /* create java CaEdrInterface instance*/ } OIC_LOG(DEBUG, TAG, "OUT"); }
void CAEDRInitialize(u_thread_pool_t handle) { OIC_LOG(DEBUG, TAG, "CAEDRInitialize"); g_threadPoolHandle = handle; // init mutex CAEDRCreateMutex(); jboolean isAttached = JNI_FALSE; JNIEnv* env; jint res = (*g_jvm)->GetEnv(g_jvm, (void**)&env, JNI_VERSION_1_6); if(res != JNI_OK) { OIC_LOG(DEBUG, TAG, "CAEDRInitialize - Could not get JNIEnv pointer"); res = (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL); if(res != JNI_OK) { OIC_LOG(DEBUG, TAG, "AttachCurrentThread failed"); return; } isAttached = JNI_TRUE; } jstring jni_address = CAEDRNativeGetLocalDeviceAddress(env); if(jni_address) { const char* localAddress = (*env)->GetStringUTFChars(env, jni_address, NULL); OIC_LOG_V(DEBUG, TAG, "My BT Address is %s", localAddress); } CAEDRNativeCreateDeviceStateList(); CAEDRNativeCreateDeviceSocketList(); if(isAttached) (*g_jvm)->DetachCurrentThread(g_jvm); // CAEDRCreateJNIInterfaceObject(gContext); /* create java CAEDRInterface instance*/ OIC_LOG(DEBUG, TAG, "OUT"); }