It is required to set proper advertising flags when establishing a
connection using
Bluetooth low energy to properly recognize device type.
Without this, the Linux device cannot recognize the Tizen device
properly and establish a connection.
Change-Id: I7899e9ab56a40095df3a91aa15fc956ebd2aea58
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
Signed-off-by: Jakub Latusek <j.latusek@samsung.com>
DBG("After Transport Discovery Data: Index [%d]", index);
}
+ /* Flags */
+ if (adv_param_setup.adv_flags > 0) {
+ if (index + 2 >= BT_HAL_ADVERTISING_DATA_LENGTH_MAX)
+ return BT_STATUS_FAIL;
+
+ adv_data[index] = 0x02;
+ adv_data[index+1] = 0x01;
+ adv_data[index+2] = adv_param_setup.adv_flags;
+ index += 3;
+ length += 3;
+ DBG("After Flags: Index [%d]", index);
+ }
+
if (length >= BT_HAL_ADVERTISING_DATA_LENGTH_MAX)
return BT_STATUS_FAIL;
uint16_t min_interval;
uint16_t max_interval;
uint8_t adv_type;
+ uint8_t adv_flags;
uint8_t chnl_map;
uint8_t tx_power;
uint8_t timeout_s;
uint16_t min_interval;
uint16_t max_interval;
uint8_t adv_type;
+ uint8_t adv_flags;
uint8_t chnl_map;
uint16_t tx_power;
uint8_t timeout_s;
adv_setup.min_interval = adv_param_setup->min_interval;
adv_setup.max_interval = adv_param_setup->min_interval;
adv_setup.adv_type = adv_param_setup->adv_type;
+ adv_setup.adv_flags = adv_param_setup->adv_flags;
adv_setup.chnl_map = adv_param_setup->chnl_map;
adv_setup.tx_power = adv_param_setup->tx_power;
adv_setup.timeout_s = adv_param_setup->timeout_s;
adv_setup->include_name = 1;
break;
}
+ case 0x01: {
+ adv_setup->adv_flags = ptr[2];
+ BT_DBG("adv_flags: 0x%x", adv_setup->adv_flags);
+ break;
+ }
case 0x19: {
if (len != (BLUETOOTH_APPEARANCE_LENGTH + 1)) {
BT_ERR("Appearance characteristic length is invalid");