--- android/adapter.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/android/adapter.c b/android/adapter.c index 1be0fb3..00766eb 100644 --- a/android/adapter.c +++ b/android/adapter.c @@ -329,6 +329,26 @@ static void user_passkey_request_callback(uint16_t index, uint16_t length, send_ssp_request(&ev->addr.bdaddr, HAL_SSP_VARIANT_ENTRY, 0); } +static void user_passkey_notify_callback(uint16_t index, uint16_t length, + const void *param, void *user_data) +{ + const struct mgmt_ev_passkey_notify *ev = param; + char dst[18]; + + if (length < sizeof(*ev)) { + error("Too small passkey notify event"); + return; + } + + ba2str(&ev->addr.bdaddr, dst); + DBG("%s entered %u", dst, ev->entered); + + /* HAL seems to not support entered characters */ + if (!ev->entered) + send_ssp_request(&ev->addr.bdaddr, HAL_SSP_VARIANT_NOTIF, + ev->passkey); +} + static void register_mgmt_handlers(void) { mgmt_register(adapter->mgmt, MGMT_EV_NEW_SETTINGS, adapter->index, @@ -355,6 +375,10 @@ static void register_mgmt_handlers(void) mgmt_register(adapter->mgmt, MGMT_EV_USER_PASSKEY_REQUEST, adapter->index, user_passkey_request_callback, NULL, NULL); + + mgmt_register(adapter->mgmt, MGMT_EV_PASSKEY_NOTIFY, adapter->index, + user_passkey_notify_callback, NULL, NULL); + } static void load_link_keys_complete(uint8_t status, uint16_t length, -- 1.8.4.rc3 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html