unsigned char *transport_data, unsigned int transport_data_len);
/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Adds advertising flags.
+ * @since_tizen 8.0
+ * @privlevel public
+ * @privilege %http://tizen.org/privilege/bluetooth
+ *
+ * @param[in] advertiser The handle of advertiser
+ * @param[in] flags The advertising flags
+ *
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #BT_ERROR_NONE Successful
+ * @retval #BT_ERROR_NOT_INITIALIZED Not initialized
+ * @retval #BT_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #BT_ERROR_PERMISSION_DENIED Permission denied
+ *
+ * @pre The Bluetooth service must be initialized with bt_initialize().
+ *
+ * @see bt_adapter_le_advertising_flags_e
+ * @see bt_adapter_le_create_advertiser()
+ * @see bt_adapter_le_start_advertising_new()
+ */
+int bt_adapter_le_set_advertising_flags(bt_advertiser_h advertiser, unsigned char flags);
+
+/**
* @internal
* @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_MODULE
* @brief Retrieves the address of the devices connected with the specific profile.
* @internal
*/
typedef enum {
+ BT_ADAPTER_LE_ADVERTISING_DATA_FLAGS = 0x01, /**< Flags */
BT_ADAPTER_LE_ADVERTISING_DATA_INCOMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x02, /**<Incomplete list of 16 bit UUIDs */
BT_ADAPTER_LE_ADVERTISING_DATA_COMP_LIST_16_BIT_SERVICE_CLASS_UUIDS = 0x03, /**< Complete list of 16 bit UUIDs */
BT_ADAPTER_LE_ADVERTISING_DATA_INCOMP_LIST_128_BIT_SERVICE_CLASS_UUIDS = 0x06, /**< Incomplete list of 128 bit UUIDs */
BT_ADAPTER_LE_ADVERTISING_TX_POWER_ULTRA_LOW = -23 /**< Lowst transmission power level */
} bt_adapter_le_advertising_tx_power_level_e;
+/**
+ * @ingroup CAPI_NETWORK_BLUETOOTH_ADAPTER_LE_MODULE
+ * @brief Enumerations of the Bluetooth LE advertising flags
+ * @since_tizen 8.0
+ */
+typedef enum {
+ BT_ADAPTER_LE_ADVERTISING_FLAGS_LIM_DISC = 0x01, /* LE Limited Discoverable Mode */
+ BT_ADAPTER_LE_ADVERTISING_FLAGS_GEN_DISC = 0x02, /* LE General Discoverable Mode */
+ BT_ADAPTER_LE_ADVERTISING_FLAGS_BREDR_UNSUP = 0x04, /* BR/EDR Not Supported */
+ BT_ADAPTER_LE_ADVERTISING_FLAGS_CONTROLLER = 0x08, /* Simultaneous LE and BR/EDR to Same Device Capable (Controller) */
+ BT_ADAPTER_LE_ADVERTISING_FLAGS_SIM_HOST = 0x10, /* Simultaneous LE and BR/EDR to Same Device Capable (Host) */
+} bt_adapter_le_advertising_flags_e;
+
/* Mesh Start */
#define BT_MESH_MAX_UNPROVISIONED_DEVICE_SCAN_TIME 300
#define BT_MESH_NETWORK_NAME_STRING_MAX_LEN 100
return ret;
}
+int bt_adapter_le_set_advertising_flags(bt_advertiser_h advertiser,
+ unsigned char flags)
+{
+ int ret = BT_ERROR_NONE;
+ char *data_ptr = NULL;
+ int data_len;
+
+ BT_CHECK_LE_SUPPORT();
+ BT_CHECK_INIT_STATUS();
+ BT_CHECK_INPUT_PARAMETER(advertiser);
+
+ __bt_find_adv_data_type(advertiser, BT_ADAPTER_LE_PACKET_ADVERTISING,
+ BT_ADAPTER_LE_ADVERTISING_DATA_FLAGS, &data_ptr, &data_len);
+ if (data_ptr) {
+ BT_ERR("Aleady existed"); /* LCOV_EXCL_LINE */
+ return BT_ERROR_ALREADY_DONE; /* LCOV_EXCL_LINE */
+ }
+
+ ret = bt_adapter_le_add_advertising_data(advertiser,
+ BT_ADAPTER_LE_PACKET_ADVERTISING, BT_ADAPTER_LE_ADVERTISING_DATA_FLAGS,
+ &flags, sizeof(flags));
+
+ return ret;
+}
+
int bt_adapter_le_set_advertising_appearance(bt_advertiser_h advertiser,
bt_adapter_le_packet_type_e pkt_type, int appearance)
{
manufacture = manufacture_1;
break;
- case 2: /* appearance & tx power level */
+ case 2: /* flags & appearance & tx power level */
+ ret = bt_adapter_le_set_advertising_flags(advertiser,
+ BT_ADAPTER_LE_ADVERTISING_FLAGS_GEN_DISC | BT_ADAPTER_LE_ADVERTISING_FLAGS_BREDR_UNSUP);
+ if (ret != BT_ERROR_NONE)
+ TC_PRT("add flags data [0x%04x]", ret);
+
ret = bt_adapter_le_set_advertising_appearance(advertiser,
BT_ADAPTER_LE_PACKET_ADVERTISING, appearance);
if (ret != BT_ERROR_NONE)