diff --git a/android/bluetooth.c b/android/bluetooth.c
index fdf7b91..f39f1e6 100644
--- a/android/bluetooth.c
+++ b/android/bluetooth.c
bool in_white_list;
+ bool connected;
+
char *name;
char *friendly_name;
if (!dev)
return;
+ dev->connected = true;
+
get_device_android_addr(dev, hal_ev.bdaddr);
ipc_send_notif(hal_ipc, HAL_SERVICE_ID_BLUETOOTH,
if (device_is_paired(dev, type) && !device_is_bonded(dev))
update_device_state(dev, type, HAL_STATUS_SUCCESS, false,
false, false);
+
+ dev->connected = false;
}
static uint8_t status_mgmt2hal(uint8_t mgmt)
{
const struct hal_cmd_get_connection_state *cmd = buf;
struct hal_rsp_get_connection_state rsp;
+ struct device *dev;
char address[18];
bdaddr_t bdaddr;
android2bdaddr(cmd->bdaddr, &bdaddr);
ba2str(&bdaddr, address);
- DBG("%s", address);
-
- /* TODO */
+ dev = find_device_android(cmd->bdaddr);
+ if (dev && dev->connected)
+ rsp.connection_state = 1;
+ else
+ rsp.connection_state = 0;
- rsp.connection_state = 0;
+ DBG("%s %u", address, rsp.connection_state);
ipc_send_rsp_full(hal_ipc, HAL_SERVICE_ID_BLUETOOTH,
HAL_OP_GET_CONNECTION_STATE, sizeof(rsp), &rsp,