#include "canfcinterface.h"\r
\r
#include "caadapterutils.h"\r
-#include "camutex.h"\r
+#include "octhread.h"\r
#include "oic_malloc.h"\r
#include "oic_string.h"\r
\r
CAResult_t SetCreateNdefMessageCallbackfromNative(JNIEnv* env)\r
{\r
OIC_LOG(DEBUG, TAG, "SetCreateNdefMessageCallbackfromNative IN");\r
+\r
+ VERIFY_NON_NULL(env, TAG, "env");\r
+ VERIFY_NON_NULL(g_context, TAG, "g_context");\r
+ VERIFY_NON_NULL(g_activity, TAG, "g_activity");\r
+ VERIFY_NON_NULL(g_nfcInterface, TAG, "g_nfcInterface");\r
+\r
jclass cid_NfcAdapter = (*env)->FindClass(env, "android/nfc/NfcAdapter");\r
if (!cid_NfcAdapter)\r
{\r
{\r
OIC_LOG(DEBUG, TAG, "CANfcCreateJniInterfaceObject IN");\r
\r
- if (!g_context)\r
- {\r
- OIC_LOG(ERROR, TAG, "g_context is null");\r
- return CA_STATUS_FAILED;\r
- }\r
-\r
- if (!g_jvm)\r
- {\r
- OIC_LOG(ERROR, TAG, "g_jvm is null");\r
- return CA_STATUS_FAILED;\r
- }\r
+ VERIFY_NON_NULL(g_activity, TAG, "g_activity");\r
+ VERIFY_NON_NULL(g_context, TAG, "g_context");\r
+ VERIFY_NON_NULL(g_jvm, TAG, "g_jvm");\r
\r
bool isAttached = false;\r
- JNIEnv* env;\r
+ JNIEnv* env = NULL;\r
jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
if (JNI_OK != res)\r
{\r
isAttached = true;\r
}\r
\r
- jclass jni_NfcInterface = (*env)->FindClass(env, "org/iotivity/ca/CaNfcInterface");\r
+ jmethodID mid_getApplicationContext = CAGetJNIMethodID(env, "android/content/Context",\r
+ "getApplicationContext",\r
+ "()Landroid/content/Context;");\r
+\r
+ if (!mid_getApplicationContext)\r
+ {\r
+ OIC_LOG(ERROR, TAG, "Could not get getApplicationContext method");\r
+ return CA_STATUS_FAILED;\r
+ }\r
+\r
+ jobject jApplicationContext = (*env)->CallObjectMethod(env, g_context,\r
+ mid_getApplicationContext);\r
+ if (!jApplicationContext)\r
+ {\r
+ OIC_LOG(ERROR, TAG, "Could not get application context");\r
+ return CA_STATUS_FAILED;\r
+ }\r
+\r
+ jclass jni_NfcInterface = (*env)->FindClass(env, CLASS_NFCINTERFACE);\r
if (!jni_NfcInterface)\r
{\r
OIC_LOG(ERROR, TAG, "Could not get CaNfcInterface class");\r
}\r
\r
jobject jni_nfcInstance = (*env)->NewObject(env, jni_NfcInterface,\r
- NfcInterfaceConstructorMethod, g_context,\r
+ NfcInterfaceConstructorMethod, jApplicationContext,\r
g_activity);\r
if (!jni_nfcInstance)\r
{\r
\r
OIC_LOG(INFO, TAG, "CANFCStartServer : IN");\r
\r
- JNIEnv* env;\r
+ JNIEnv* env = NULL;\r
jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
if (JNI_OK != res)\r
{\r
isAttached = true;\r
}\r
\r
- jclass jni_NfcInterface = (*env)->FindClass(env, "org/iotivity/ca/CaNfcInterface");\r
+ jclass jni_NfcInterface = (*env)->FindClass(env, CLASS_NFCINTERFACE);\r
if (!jni_NfcInterface)\r
{\r
OIC_LOG(ERROR, TAG, "Could not get CaNFCClientInterface class");\r
return NULL;\r
}\r
\r
- jclass cid_string = (*env)->FindClass(env, "java/lang/String");\r
- if (!cid_string)\r
- {\r
- OIC_LOG(ERROR, TAG, "Could not get NfcAdapter class for cid_string");\r
- return NULL;\r
- }\r
-\r
- jmethodID mid_getBytes = (*env)->GetMethodID(env, cid_string, "getBytes",\r
- "(Ljava/lang/String;)[B");\r
+ jmethodID mid_getBytes = CAGetJNIMethodID(env, "java/lang/String", "getBytes",\r
+ "(Ljava/lang/String;)[B");\r
if (!mid_getBytes)\r
{\r
OIC_LOG(ERROR, TAG, "Could not get methodId for mid_getBytes");\r
OIC_LOG(DEBUG, TAG, "cANativeNfcInvokeBeam : IN");\r
VERIFY_NON_NULL_RET(env, TAG, "env is null", false);\r
VERIFY_NON_NULL_RET(obj, TAG, "obj is null", false);\r
+ VERIFY_NON_NULL_RET(g_context, TAG, "g_context is null", false);\r
+ VERIFY_NON_NULL_RET(g_activity, TAG, "g_activity is null", false);\r
\r
jclass cid_NfcAdapter = (*env)->FindClass(env, "android/nfc/NfcAdapter");\r
if (!cid_NfcAdapter)\r
{\r
VERIFY_NON_NULL(ep, TAG, "CANfcSendDataImpl : endpoint is null");\r
VERIFY_NON_NULL(data, TAG, "CANfcSendDataImpl : data is null");\r
+ VERIFY_NON_NULL(g_jvm, TAG, "CANfcSendDataImpl : g_jvm is null");\r
+\r
OIC_LOG(INFO, TAG, "CANfcSendDataImpl moved env outside");\r
bool isAttached = false;\r
- JNIEnv* env;\r
+ JNIEnv* env = NULL;\r
jint res = (*g_jvm)->GetEnv(g_jvm, (void**) &env, JNI_VERSION_1_6);\r
if (JNI_OK != res)\r
{\r