3 #include <android/log.h>
6 #include "oic_malloc.h"
7 #include "uthreadpool.h"
8 #include "uarraylist.h"
10 #define TAG PCF("CA_LE_UTILS")
12 #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
13 #define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
15 #define METHODID_OBJECTNONPARAM "()Landroid/bluetooth/BluetoothAdapter;"
16 //#define METHODID_INTNONPARAM "()I"
17 #define METHODID_STRINGNONPARAM "()Ljava/lang/String;"
18 //#define METHODID_OBJECT_STRINGUUIDPARAM "(Ljava/lang/String;Ljava/util/UUID;)Ljava/lang/Object;"
19 //#define METHODID_ONRESPONSE_PARAM "(Ljava/lang/String;)V"
20 #define CLASSPATH_BT_ADPATER "android/bluetooth/BluetoothAdapter"
21 //#define CLASSPATH_BT_UUID "java/util/UUID"
23 jobject CALEGetUuidFromString(JNIEnv *env, const char* uuid)
26 OIC_LOG_V(DEBUG, TAG, "CALEGetUuidFromString");
28 jclass jni_cid_UUID = (*env)->FindClass(env, "java/util/UUID");
30 jmethodID jni_mid_fromString = (*env)->GetStaticMethodID(env, jni_cid_UUID,
31 "fromString", "(Ljava/lang/String;)Ljava/util/UUID;");
33 jstring str_uuid = (*env)->NewStringUTF(env, uuid);
35 jobject jni_obj_uuid = (*env)->CallStaticObjectMethod(env, jni_cid_UUID,
36 jni_mid_fromString, str_uuid);
39 OIC_LOG_V(DEBUG, TAG, "Fail to get jni uuid object");
46 jobject CALEGetParcelUuid(JNIEnv *env, jobject uuid)
48 OIC_LOG_V(DEBUG, TAG, "CALEGetParcelUuid");
50 jclass jni_cid_ParcelUuid = (*env)->FindClass(env, "android/os/ParcelUuid");
52 jmethodID jni_mid_ParcelUuid = (*env)->GetMethodID(env, jni_cid_ParcelUuid,
53 "<init>", "(Ljava/util/UUID;)V");
55 jobject jni_ParcelUuid = (*env)->NewObject(env, jni_cid_ParcelUuid,
56 jni_mid_ParcelUuid, uuid);
59 OIC_LOG_V(DEBUG, TAG, "Fail to get jni ParcelUuid");
63 return jni_ParcelUuid;
66 jstring CALEGetAddressFromBTDevice(JNIEnv *env, jobject bluetoothDevice)
68 OIC_LOG(DEBUG, TAG, "CALEGetAddressFromBTDevice");
70 jclass jni_cid_device_list = (*env)->FindClass(env,
71 "android/bluetooth/BluetoothDevice");
72 jmethodID jni_mid_getAddress = (*env)->GetMethodID(env, jni_cid_device_list,
73 "getAddress", "()Ljava/lang/String;");
74 jstring jni_address = (jstring)(*env)->CallObjectMethod(env,
75 bluetoothDevice, jni_mid_getAddress);
78 OIC_LOG(DEBUG, TAG, "jni_address is null");
84 jstring CALEGetLocalDeviceAddress(JNIEnv* env)
86 jclass jni_cid_BTAdapter = (*env)->FindClass(env, CLASSPATH_BT_ADPATER);
87 if (!jni_cid_BTAdapter)
89 OIC_LOG(DEBUG, TAG, "getAddress: jni_cid_BTAdapter is null");
93 jmethodID jni_mid_getDefaultAdapter = (*env)->GetStaticMethodID(env,
94 jni_cid_BTAdapter, "getDefaultAdapter", METHODID_OBJECTNONPARAM);
95 if (!jni_mid_getDefaultAdapter)
97 OIC_LOG(DEBUG, TAG, "getAddress: jni_mid_getDefaultAdapter is null");
101 jmethodID jni_mid_getAddress = (*env)->GetMethodID(env, jni_cid_BTAdapter,
102 "getAddress", METHODID_STRINGNONPARAM);
103 if (!jni_mid_getAddress)
105 OIC_LOG(DEBUG, TAG, "getAddress: jni_mid_getAddress is null");
109 jobject jni_obj_BTAdapter = (*env)->CallStaticObjectMethod(env,
110 jni_cid_BTAdapter, jni_mid_getDefaultAdapter);
111 if (!jni_obj_BTAdapter)
113 OIC_LOG(DEBUG, TAG, "getAddress: jni_obj_BTAdapter is null");
117 jstring jni_str_address = (jstring)(*env)->CallObjectMethod(env,
118 jni_obj_BTAdapter, jni_mid_getAddress);
119 if (!jni_str_address)
121 OIC_LOG(DEBUG, TAG, "getAddress: jni_str_address is null");
125 return jni_str_address;