static jint addRfcommServiceRecordNative(JNIEnv *env, jobject object, jstring name, jlong uuidMsb, jlong uuidLsb, jshort channel) { LOGV(__FUNCTION__); #ifdef HAVE_BLUETOOTH native_data_t *nat = get_native_data(env, object); if (nat) { const char *c_name = env->GetStringUTFChars(name, NULL); LOGV("... name = %s", c_name); LOGV("... uuid1 = %llX", uuidMsb); LOGV("... uuid2 = %llX", uuidLsb); LOGV("... channel = %d", channel); DBusMessage *reply = dbus_func_args(env, nat->conn, get_adapter_path(env, object), DBUS_ADAPTER_IFACE, "AddRfcommServiceRecord", DBUS_TYPE_STRING, &c_name, DBUS_TYPE_UINT64, &uuidMsb, DBUS_TYPE_UINT64, &uuidLsb, DBUS_TYPE_UINT16, &channel, DBUS_TYPE_INVALID); env->ReleaseStringUTFChars(name, c_name); return reply ? dbus_returns_uint32(env, reply) : -1; } #endif return -1; }
static jint addServiceRecordFromXmlNative(JNIEnv *env, jobject object, jstring record) { LOGV(__FUNCTION__); #ifdef HAVE_BLUETOOTH if (conn != NULL) { const char *c_record = env->GetStringUTFChars(record, NULL); DBusMessage *reply = dbus_func_args(env, conn, BLUEZ_DBUS_BASE_PATH, DBUS_CLASS_NAME, "AddServiceRecordFromXML", DBUS_TYPE_STRING, &c_record, DBUS_TYPE_INVALID); env->ReleaseStringUTFChars(record, c_record); return reply ? dbus_returns_uint32(env, reply) : -1; } #endif return -1; }
static jint addServiceRecordNative(JNIEnv *env, jobject object, jbyteArray record) { LOGV(__FUNCTION__); #ifdef HAVE_BLUETOOTH if (conn != NULL) { jbyte* c_record = env->GetByteArrayElements(record, NULL); DBusMessage *reply = dbus_func_args(env, conn, BLUEZ_DBUS_BASE_PATH, DBUS_CLASS_NAME, "AddServiceRecord", DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, &c_record, env->GetArrayLength(record), DBUS_TYPE_INVALID); env->ReleaseByteArrayElements(record, c_record, JNI_ABORT); return reply ? dbus_returns_uint32(env, reply) : -1; } #endif return -1; }