+ OIC_LOG(DEBUG, TAG, "Service UUID scanfilter set");
+
+ jint jni_int_manId;
+ jbyteArray jni_byte_manData;
+ // set manufactererId
+ jni_int_manId = MANUFACTURE_ID;
+
+ // call utility function to set manufacturerData
+ jni_byte_manData = CALEGetManufacturerData(env, OIC_GATT_CUSTOM_UUID);
+ if(!jni_byte_manData)
+ {
+ OIC_LOG(ERROR, TAG, "scanSettings: jni_byte_manData is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder2);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+
+ // call set(uuid)
+ jobject jni_obj_setManufacturerData = (*env)->CallObjectMethod(env,
+ jni_obj_scanfilterBuilder2,
+ jni_mid_setManufacturerData,
+ jni_int_manId,
+ jni_byte_manData);
+ if (!jni_obj_setManufacturerData)
+ {
+ OIC_LOG(ERROR, TAG, "scanfilter: jni_obj_setManufacturerData is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder2);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+ (*env)->DeleteLocalRef(env, jni_byte_manData);
+ (*env)->DeleteLocalRef(env, jni_obj_setManufacturerData);
+
+ // call build()
+ jobject jni_obj_scanfilter2 = (*env)->CallObjectMethod(env,
+ jni_obj_scanfilterBuilder2,
+ jni_mid_build_scanfilterBuilder);
+ if (!jni_obj_scanfilter2)
+ {
+ OIC_LOG(ERROR, TAG, "scanfilter: jni_obj_scanfilter2 is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder2);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder2);
+
+ OIC_LOG(DEBUG, TAG, "First custom UUID scanfilter set");
+
+ // call utility function to set manufacturerData
+ jni_byte_manData = CALEGetManufacturerData(env, OIC_GATT_CUSTOM_UUID2);
+ if(!jni_byte_manData)
+ {
+ OIC_LOG(ERROR, TAG, "scanSettings: jni_byte_manData is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+
+ // call set(uuid)
+ jni_obj_setManufacturerData = (*env)->CallObjectMethod(env,
+ jni_obj_scanfilterBuilder3,
+ jni_mid_setManufacturerData,
+ jni_int_manId,
+ jni_byte_manData);
+
+ if (!jni_obj_setManufacturerData)
+ {
+ OIC_LOG(ERROR, TAG, "scanfilter: jni_obj_setManufacturerData is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+ (*env)->DeleteLocalRef(env, jni_byte_manData);
+ (*env)->DeleteLocalRef(env, jni_obj_setManufacturerData);
+
+ // call build()
+ jobject jni_obj_scanfilter3 = (*env)->CallObjectMethod(env,
+ jni_obj_scanfilterBuilder3,
+ jni_mid_build_scanfilterBuilder);
+ if (!jni_obj_scanfilter3)
+ {
+ OIC_LOG(ERROR, TAG, "scanfilter: jni_obj_scanfilter3 is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder3);
+ OIC_LOG(DEBUG, TAG, "Second custom UUID scanfilter set");
+
+ // call utility function to set manufacturerData
+ jni_byte_manData = CALEGetManufacturerData(env, OIC_GATT_CUSTOM_UUID3);
+ if(!jni_byte_manData)
+ {
+ OIC_LOG(ERROR, TAG, "scanSettings: jni_byte_manData is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+
+ // call set(uuid)
+ jni_obj_setManufacturerData = (*env)->CallObjectMethod(env,
+ jni_obj_scanfilterBuilder4,
+ jni_mid_setManufacturerData,
+ jni_int_manId,
+ jni_byte_manData);
+
+ if (!jni_obj_setManufacturerData)
+ {
+ OIC_LOG(ERROR, TAG, "scanfilter: jni_obj_setManufacturerData is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+ (*env)->DeleteLocalRef(env, jni_byte_manData);
+ (*env)->DeleteLocalRef(env, jni_obj_setManufacturerData);
+
+ // call build()
+ jobject jni_obj_scanfilter4 = (*env)->CallObjectMethod(env,
+ jni_obj_scanfilterBuilder4,
+ jni_mid_build_scanfilterBuilder);
+ if (!jni_obj_scanfilter4)
+ {
+ OIC_LOG(ERROR, TAG, "scanfilter: jni_obj_scanfilter4 is null");
+ CACheckJNIException(env);
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ return CA_STATUS_FAILED;
+ }
+ (*env)->DeleteLocalRef(env, jni_obj_scanfilterBuilder4);
+ OIC_LOG(DEBUG, TAG, "Third custom UUID scanfilter set");
+