summaryrefslogtreecommitdiffstats
path: root/jni/com_android_bluetooth_gatt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'jni/com_android_bluetooth_gatt.cpp')
-rw-r--r--jni/com_android_bluetooth_gatt.cpp36
1 files changed, 23 insertions, 13 deletions
diff --git a/jni/com_android_bluetooth_gatt.cpp b/jni/com_android_bluetooth_gatt.cpp
index 854a92500..1ffac4e08 100644
--- a/jni/com_android_bluetooth_gatt.cpp
+++ b/jni/com_android_bluetooth_gatt.cpp
@@ -158,7 +158,7 @@ static jmethodID method_onGetDescriptor;
static jmethodID method_onGetIncludedService;
static jmethodID method_onRegisterForNotifications;
static jmethodID method_onReadRemoteRssi;
-static jmethodID method_onClientListen;
+static jmethodID method_onAdvertiseCallback;
/**
* Server callback methods
@@ -423,11 +423,10 @@ void btgattc_remote_rssi_cb(int client_if,bt_bdaddr_t* bda, int rssi, int status
checkAndClearExceptionFromCallback(sCallbackEnv, __FUNCTION__);
}
-void btgattc_listen_cb(int status, int client_if)
+void btgattc_advertise_cb(int status, int client_if)
{
CHECK_CALLBACK_ENV
- sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onClientListen
- , status, client_if);
+ sCallbackEnv->CallVoidMethod(mCallbacksObj, method_onAdvertiseCallback, status, client_if);
checkAndClearExceptionFromCallback(sCallbackEnv, __FUNCTION__);
}
@@ -449,7 +448,7 @@ static const btgatt_client_callbacks_t sGattClientCallbacks = {
btgattc_write_descriptor_cb,
btgattc_execute_write_cb,
btgattc_remote_rssi_cb,
- btgattc_listen_cb
+ btgattc_advertise_cb
};
@@ -680,7 +679,7 @@ static void classInitNative(JNIEnv* env, jclass clazz) {
method_onAttributeRead= env->GetMethodID(clazz, "onAttributeRead", "(Ljava/lang/String;IIIIZ)V");
method_onAttributeWrite= env->GetMethodID(clazz, "onAttributeWrite", "(Ljava/lang/String;IIIIIZZ[B)V");
method_onExecuteWrite= env->GetMethodID(clazz, "onExecuteWrite", "(Ljava/lang/String;III)V");
- method_onClientListen = env->GetMethodID(clazz, "onClientListen", "(II)V");
+ method_onAdvertiseCallback = env->GetMethodID(clazz, "onAdvertiseCallback", "(II)V");
info("classInitNative: Success!");
}
@@ -1058,7 +1057,7 @@ static void gattClientReadRemoteRssiNative(JNIEnv* env, jobject object, jint cli
sGattIf->client->read_remote_rssi(clientif, &bda);
}
-static void gattClientListenNative(JNIEnv *env, jobject object,
+static void gattAdvertiseNative(JNIEnv *env, jobject object,
jint client_if, jboolean start)
{
if (!sGattIf) return;
@@ -1066,17 +1065,28 @@ static void gattClientListenNative(JNIEnv *env, jobject object,
}
static void gattSetAdvDataNative(JNIEnv *env, jobject object, jint client_if, jboolean setScanRsp,
- jboolean inclName, jboolean inclTxPower, jint minInterval, jint maxInterval, jint appearance,
- jbyteArray manufacturerData)
+ jboolean inclName, jboolean inclTxPower, jint minInterval, jint maxInterval,
+ jint appearance, jbyteArray manufacturerData, jbyteArray serviceData,
+ jbyteArray serviceUuid)
{
if (!sGattIf) return;
- jbyte* arr_data = env->GetByteArrayElements(manufacturerData, 0);
+ jbyte* arr_data = env->GetByteArrayElements(manufacturerData, NULL);
uint16_t arr_len = (uint16_t) env->GetArrayLength(manufacturerData);
+ jbyte* service_data = env->GetByteArrayElements(serviceData, NULL);
+ uint16_t service_data_len = (uint16_t) env->GetArrayLength(serviceData);
+
+ jbyte* service_uuid = env->GetByteArrayElements(serviceUuid, NULL);
+ uint16_t service_uuid_len = (uint16_t) env->GetArrayLength(serviceUuid);
+
sGattIf->client->set_adv_data(client_if, setScanRsp, inclName, inclTxPower,
- minInterval, maxInterval, appearance, arr_len, (char*)arr_data);
+ minInterval, maxInterval, appearance, arr_len, (char*)arr_data,
+ service_data_len, (char*)service_data, service_uuid_len,
+ (char*)service_uuid);
env->ReleaseByteArrayElements(manufacturerData, arr_data, JNI_ABORT);
+ env->ReleaseByteArrayElements(serviceData, service_data, JNI_ABORT);
+ env->ReleaseByteArrayElements(serviceUuid, service_uuid, JNI_ABORT);
}
@@ -1292,7 +1302,7 @@ static JNINativeMethod sMethods[] = {
{"gattClientExecuteWriteNative", "(IZ)V", (void *) gattClientExecuteWriteNative},
{"gattClientRegisterForNotificationsNative", "(ILjava/lang/String;IIJJIJJZ)V", (void *) gattClientRegisterForNotificationsNative},
{"gattClientReadRemoteRssiNative", "(ILjava/lang/String;)V", (void *) gattClientReadRemoteRssiNative},
- {"gattClientListenNative", "(IZ)V", (void *) gattClientListenNative},
+ {"gattAdvertiseNative", "(IZ)V", (void *) gattAdvertiseNative},
{"gattServerRegisterAppNative", "(JJ)V", (void *) gattServerRegisterAppNative},
{"gattServerUnregisterAppNative", "(I)V", (void *) gattServerUnregisterAppNative},
@@ -1309,7 +1319,7 @@ static JNINativeMethod sMethods[] = {
{"gattServerSendNotificationNative", "(III[B)V", (void *) gattServerSendNotificationNative},
{"gattServerSendResponseNative", "(IIIIII[BI)V", (void *) gattServerSendResponseNative},
- {"gattSetAdvDataNative", "(IZZZIII[B)V", (void *) gattSetAdvDataNative},
+ {"gattSetAdvDataNative", "(IZZZIII[B[B[B)V", (void *) gattSetAdvDataNative},
{"gattTestNative", "(IJJLjava/lang/String;IIIII)V", (void *) gattTestNative},
};