diff --git a/android/Android.mk b/android/Android.mk
index a9a0982..199334f 100644
--- a/android/Android.mk
+++ b/android/Android.mk
# Retrieve BlueZ version from configure.ac file
BLUEZ_VERSION := `grep "^AC_INIT" $(LOCAL_PATH)/bluez/configure.ac | sed -e "s/.*,.\(.*\))/\1/"`
+ANDROID_VERSION := `echo $(PLATFORM_VERSION) | awk -F. '{ printf "0x%02d%02d%02d",$$1,$$2,$$3 }'`
+
# Specify pathmap for glib and sbc
pathmap_INCL += glib:external/bluetooth/glib \
sbc:external/bluetooth/sbc \
# Specify common compiler flags
BLUEZ_COMMON_CFLAGS := -DVERSION=\"$(BLUEZ_VERSION)\" \
+ -DANDROID_VERSION=$(ANDROID_VERSION) \
-DANDROID_STORAGEDIR=\"/data/misc/bluetooth\" \
# Enable warnings enabled in autotools build
diff --git a/android/Makefile.am b/android/Makefile.am
index 3429adb..a9a9e7d 100644
--- a/android/Makefile.am
+++ b/android/Makefile.am
if ANDROID
+
+AM_CFLAGS += -DANDROID_VERSION=0xFFFFFF
+
android_plugindir = $(abs_top_srcdir)/android/.libs
noinst_PROGRAMS += android/system-emulator
diff --git a/android/hal-gatt.c b/android/hal-gatt.c
index a8f5bd1..043c379 100644
--- a/android/hal-gatt.c
+++ b/android/hal-gatt.c
return dev_type;
}
-static bt_status_t set_adv_data(int server_if, bool set_scan_rsp,
+static bt_status_t set_adv_data_real(int server_if, bool set_scan_rsp,
bool include_name, bool include_txpower,
int min_interval, int max_interval,
int appearance, uint16_t manufacturer_len,
cmd_len, cmd, 0, NULL, NULL);
}
+/*
+ * This is temporary solution and support for older Android versions might
+ * be removed at any time.
+ */
+#if ANDROID_VERSION < PLATFORM_VER(4,4,3)
+static bt_status_t set_adv_data(int server_if, bool set_scan_rsp,
+ bool include_name, bool include_txpower,
+ int min_interval, int max_interval,
+ int appearance, uint16_t manufacturer_len,
+ char *manufacturer_data)
+{
+ return set_adv_data_real(server_if, set_scan_rsp, include_name,
+ include_txpower, min_interval,
+ max_interval, appearance,
+ manufacturer_len, manufacturer_data,
+ 0, NULL, 0, NULL);
+}
+#else
+static bt_status_t set_adv_data(int server_if, bool set_scan_rsp,
+ bool include_name, bool include_txpower,
+ int min_interval, int max_interval,
+ int appearance, uint16_t manufacturer_len,
+ char *manufacturer_data,
+ uint16_t service_data_len, char *service_data,
+ uint16_t service_uuid_len, char *service_uuid)
+{
+ return set_adv_data_real(server_if, set_scan_rsp, include_name,
+ include_txpower, min_interval,
+ max_interval, appearance,
+ manufacturer_len, manufacturer_data,
+ service_data_len, service_data,
+ service_uuid_len, service_uuid);
+}
+#endif
+
static bt_status_t test_command(int command, btgatt_test_params_t *params)
{
struct hal_cmd_gatt_client_test_command cmd;
diff --git a/android/hal-utils.h b/android/hal-utils.h
index 8a1d015..a0aab57 100644
--- a/android/hal-utils.h
+++ b/android/hal-utils.h
#include <hardware/bluetooth.h>
+#define PLATFORM_VER(a,b,c) ((a << 16) | ( b << 8) | (c))
+
#define MAX_UUID_STR_LEN 37
#define HAL_UUID_LEN 16
#define MAX_ADDR_STR_LEN 18