195489c19Sopenharmony_ci/* 295489c19Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 395489c19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 495489c19Sopenharmony_ci * you may not use this file except in compliance with the License. 595489c19Sopenharmony_ci * You may obtain a copy of the License at 695489c19Sopenharmony_ci * 795489c19Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 895489c19Sopenharmony_ci * 995489c19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1095489c19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1195489c19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1295489c19Sopenharmony_ci * See the License for the specific language governing permissions and 1395489c19Sopenharmony_ci * limitations under the License. 1495489c19Sopenharmony_ci */ 1595489c19Sopenharmony_ci 1695489c19Sopenharmony_ci/** 1795489c19Sopenharmony_ci * @addtogroup Bluetooth 1895489c19Sopenharmony_ci * @{ 1995489c19Sopenharmony_ci * 2095489c19Sopenharmony_ci * @brief Defines advertiser, including avertise data and callbacks, and advertiser functions. 2195489c19Sopenharmony_ci * 2295489c19Sopenharmony_ci * @since 6 2395489c19Sopenharmony_ci */ 2495489c19Sopenharmony_ci 2595489c19Sopenharmony_ci/** 2695489c19Sopenharmony_ci * @file bluetooth_ble_advertiser.h 2795489c19Sopenharmony_ci * 2895489c19Sopenharmony_ci * @brief Advertiser common functions. 2995489c19Sopenharmony_ci * 3095489c19Sopenharmony_ci * @since 6 3195489c19Sopenharmony_ci */ 3295489c19Sopenharmony_ci 3395489c19Sopenharmony_ci#ifndef BLUETOOTH_BLE_ADVERTISER_H 3495489c19Sopenharmony_ci#define BLUETOOTH_BLE_ADVERTISER_H 3595489c19Sopenharmony_ci 3695489c19Sopenharmony_ci#include "bluetooth_def.h" 3795489c19Sopenharmony_ci#include "bluetooth_types.h" 3895489c19Sopenharmony_ci#include "ohos_bt_def.h" 3995489c19Sopenharmony_ci 4095489c19Sopenharmony_cinamespace OHOS { 4195489c19Sopenharmony_cinamespace Bluetooth { 4295489c19Sopenharmony_ci/** 4395489c19Sopenharmony_ci * @brief Represents advertise data. 4495489c19Sopenharmony_ci * 4595489c19Sopenharmony_ci * @since 6 4695489c19Sopenharmony_ci */ 4795489c19Sopenharmony_ciclass BLUETOOTH_API BleAdvertiserData { 4895489c19Sopenharmony_cipublic: 4995489c19Sopenharmony_ci /** 5095489c19Sopenharmony_ci * @brief A constructor used to create a <b>BleAdvertiserData</b> instance. 5195489c19Sopenharmony_ci * 5295489c19Sopenharmony_ci * @since 6 5395489c19Sopenharmony_ci */ 5495489c19Sopenharmony_ci BleAdvertiserData(); 5595489c19Sopenharmony_ci 5695489c19Sopenharmony_ci /** 5795489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BleAdvertiserData</b> instance. 5895489c19Sopenharmony_ci * 5995489c19Sopenharmony_ci * @since 6 6095489c19Sopenharmony_ci */ 6195489c19Sopenharmony_ci ~BleAdvertiserData(); 6295489c19Sopenharmony_ci 6395489c19Sopenharmony_ci /** 6495489c19Sopenharmony_ci * @brief Add manufacture data. 6595489c19Sopenharmony_ci * 6695489c19Sopenharmony_ci * @param manufacturerId Manufacture Id which addad data. 6795489c19Sopenharmony_ci * @param data Manufacture data 6895489c19Sopenharmony_ci * @since 6 6995489c19Sopenharmony_ci */ 7095489c19Sopenharmony_ci void AddManufacturerData(uint16_t manufacturerId, const std::string &data); 7195489c19Sopenharmony_ci 7295489c19Sopenharmony_ci /** 7395489c19Sopenharmony_ci * @brief Add service data. 7495489c19Sopenharmony_ci * 7595489c19Sopenharmony_ci * @param uuid Uuid of service data. 7695489c19Sopenharmony_ci * @param serviceData Service data. 7795489c19Sopenharmony_ci * @since 6 7895489c19Sopenharmony_ci */ 7995489c19Sopenharmony_ci void AddServiceData(const ParcelUuid &uuid, const std::string &serviceData); 8095489c19Sopenharmony_ci 8195489c19Sopenharmony_ci /** 8295489c19Sopenharmony_ci * @brief Add service uuid. 8395489c19Sopenharmony_ci * 8495489c19Sopenharmony_ci * @param serviceUuid Service uuid. 8595489c19Sopenharmony_ci * @since 6 8695489c19Sopenharmony_ci */ 8795489c19Sopenharmony_ci void AddServiceUuid(const ParcelUuid &serviceUuid); 8895489c19Sopenharmony_ci 8995489c19Sopenharmony_ci /** 9095489c19Sopenharmony_ci * @brief Get manufacture data. 9195489c19Sopenharmony_ci * 9295489c19Sopenharmony_ci * @return Returns manufacture data. 9395489c19Sopenharmony_ci * @since 6 9495489c19Sopenharmony_ci */ 9595489c19Sopenharmony_ci std::map<uint16_t, std::string> GetManufacturerData() const; 9695489c19Sopenharmony_ci 9795489c19Sopenharmony_ci /** 9895489c19Sopenharmony_ci * @brief Get service data. 9995489c19Sopenharmony_ci * 10095489c19Sopenharmony_ci * @return Returns service data. 10195489c19Sopenharmony_ci * @since 6 10295489c19Sopenharmony_ci */ 10395489c19Sopenharmony_ci std::map<ParcelUuid, std::string> GetServiceData() const; 10495489c19Sopenharmony_ci 10595489c19Sopenharmony_ci /** 10695489c19Sopenharmony_ci * @brief Get service uuids. 10795489c19Sopenharmony_ci * 10895489c19Sopenharmony_ci * @return Returns service uuids. 10995489c19Sopenharmony_ci * @since 6 11095489c19Sopenharmony_ci */ 11195489c19Sopenharmony_ci std::vector<ParcelUuid> GetServiceUuids() const; 11295489c19Sopenharmony_ci 11395489c19Sopenharmony_ci /** 11495489c19Sopenharmony_ci * @brief Get advertiser flag. 11595489c19Sopenharmony_ci * 11695489c19Sopenharmony_ci * @return Returns advertiser flag. 11795489c19Sopenharmony_ci * @since 6 11895489c19Sopenharmony_ci */ 11995489c19Sopenharmony_ci uint8_t GetAdvFlag() const; 12095489c19Sopenharmony_ci 12195489c19Sopenharmony_ci /** 12295489c19Sopenharmony_ci * @brief Set advertiser flag. 12395489c19Sopenharmony_ci * 12495489c19Sopenharmony_ci * @param flag Advertiser flag. 12595489c19Sopenharmony_ci * @return Returns error flag. 12695489c19Sopenharmony_ci * @since 6 12795489c19Sopenharmony_ci */ 12895489c19Sopenharmony_ci void SetAdvFlag(uint8_t flag); 12995489c19Sopenharmony_ci 13095489c19Sopenharmony_ci /** 13195489c19Sopenharmony_ci * @brief Get whether the device name will be included in the advertisement packet. 13295489c19Sopenharmony_ci * 13395489c19Sopenharmony_ci * @return Returns includeDeviceName flag. 13495489c19Sopenharmony_ci * @since 6 13595489c19Sopenharmony_ci */ 13695489c19Sopenharmony_ci bool GetIncludeDeviceName() const; 13795489c19Sopenharmony_ci 13895489c19Sopenharmony_ci /** 13995489c19Sopenharmony_ci * @brief Set whether the device name will be included in the advertisement packet. 14095489c19Sopenharmony_ci * 14195489c19Sopenharmony_ci * @param flag includeDeviceName flag. 14295489c19Sopenharmony_ci * @since 6 14395489c19Sopenharmony_ci */ 14495489c19Sopenharmony_ci void SetIncludeDeviceName(bool flag); 14595489c19Sopenharmony_ci 14695489c19Sopenharmony_ci /** 14795489c19Sopenharmony_ci * @brief Get whether the txpower will be included in the advertisement packet. 14895489c19Sopenharmony_ci * 14995489c19Sopenharmony_ci * @return Returns includeTxPower flag. 15095489c19Sopenharmony_ci * @since 10 15195489c19Sopenharmony_ci */ 15295489c19Sopenharmony_ci bool GetIncludeTxPower() const; 15395489c19Sopenharmony_ci 15495489c19Sopenharmony_ci /** 15595489c19Sopenharmony_ci * @brief Set whether the txpower will be included in the advertisement packet. 15695489c19Sopenharmony_ci * 15795489c19Sopenharmony_ci * @param flag includeTxPower flag. 15895489c19Sopenharmony_ci * @since 10 15995489c19Sopenharmony_ci */ 16095489c19Sopenharmony_ci void SetIncludeTxPower(bool flag); 16195489c19Sopenharmony_ci 16295489c19Sopenharmony_ciprivate: 16395489c19Sopenharmony_ci std::vector<ParcelUuid> serviceUuids_{}; 16495489c19Sopenharmony_ci std::map<uint16_t, std::string> manufacturerSpecificData_{}; 16595489c19Sopenharmony_ci std::map<ParcelUuid, std::string> serviceData_{}; 16695489c19Sopenharmony_ci uint8_t advFlag_ = BLE_ADV_FLAG_GEN_DISC; 16795489c19Sopenharmony_ci bool includeDeviceName_ = false; 16895489c19Sopenharmony_ci bool includeTxPower_ = false; 16995489c19Sopenharmony_ci}; 17095489c19Sopenharmony_ci 17195489c19Sopenharmony_ci/** 17295489c19Sopenharmony_ci * @brief Represents advertise settings. 17395489c19Sopenharmony_ci * 17495489c19Sopenharmony_ci * @since 6 17595489c19Sopenharmony_ci */ 17695489c19Sopenharmony_ciclass BLUETOOTH_API BleAdvertiserSettings { 17795489c19Sopenharmony_cipublic: 17895489c19Sopenharmony_ci /** 17995489c19Sopenharmony_ci * @brief A constructor used to create a <b>BleAdvertiseSettings</b> instance. 18095489c19Sopenharmony_ci * 18195489c19Sopenharmony_ci * @since 6 18295489c19Sopenharmony_ci */ 18395489c19Sopenharmony_ci BleAdvertiserSettings(); 18495489c19Sopenharmony_ci 18595489c19Sopenharmony_ci /** 18695489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BleAdvertiseSettings</b> instance. 18795489c19Sopenharmony_ci * 18895489c19Sopenharmony_ci * @since 6 18995489c19Sopenharmony_ci */ 19095489c19Sopenharmony_ci ~BleAdvertiserSettings(); 19195489c19Sopenharmony_ci 19295489c19Sopenharmony_ci /** 19395489c19Sopenharmony_ci * @brief Check if device service is connctable. 19495489c19Sopenharmony_ci * 19595489c19Sopenharmony_ci * @return Returns <b>true</b> if device service is connctable; 19695489c19Sopenharmony_ci * returns <b>false</b> if device service is not connctable. 19795489c19Sopenharmony_ci * @since 6 19895489c19Sopenharmony_ci */ 19995489c19Sopenharmony_ci bool IsConnectable() const; 20095489c19Sopenharmony_ci 20195489c19Sopenharmony_ci /** 20295489c19Sopenharmony_ci * @brief Check if advertiser is legacy mode. 20395489c19Sopenharmony_ci * 20495489c19Sopenharmony_ci * @return Returns <b>true</b> if advertiser is legacy mode; 20595489c19Sopenharmony_ci * returns <b>false</b> if advertiser is not legacy mode. 20695489c19Sopenharmony_ci * @since 6 20795489c19Sopenharmony_ci */ 20895489c19Sopenharmony_ci bool IsLegacyMode() const; 20995489c19Sopenharmony_ci 21095489c19Sopenharmony_ci /** 21195489c19Sopenharmony_ci * @brief Set connectable. 21295489c19Sopenharmony_ci * 21395489c19Sopenharmony_ci * @param connectable Whether it is connectable. 21495489c19Sopenharmony_ci * @since 6 21595489c19Sopenharmony_ci */ 21695489c19Sopenharmony_ci void SetConnectable(bool connectable); 21795489c19Sopenharmony_ci 21895489c19Sopenharmony_ci /** 21995489c19Sopenharmony_ci * @brief Set legacyMode. 22095489c19Sopenharmony_ci * 22195489c19Sopenharmony_ci * @param legacyMode Whether it is legacyMode. 22295489c19Sopenharmony_ci * @since 6 22395489c19Sopenharmony_ci */ 22495489c19Sopenharmony_ci void SetLegacyMode(bool legacyMode); 22595489c19Sopenharmony_ci 22695489c19Sopenharmony_ci /** 22795489c19Sopenharmony_ci * @brief Get advertise interval. 22895489c19Sopenharmony_ci * 22995489c19Sopenharmony_ci * @return Returns advertise interval. 23095489c19Sopenharmony_ci * @since 6 23195489c19Sopenharmony_ci */ 23295489c19Sopenharmony_ci uint16_t GetInterval() const; 23395489c19Sopenharmony_ci 23495489c19Sopenharmony_ci /** 23595489c19Sopenharmony_ci * @brief Get Tx power. 23695489c19Sopenharmony_ci * 23795489c19Sopenharmony_ci * @return Returns Tx power. 23895489c19Sopenharmony_ci * @since 6 23995489c19Sopenharmony_ci */ 24095489c19Sopenharmony_ci int8_t GetTxPower() const; 24195489c19Sopenharmony_ci 24295489c19Sopenharmony_ci /** 24395489c19Sopenharmony_ci * @brief Set advertise interval. 24495489c19Sopenharmony_ci * 24595489c19Sopenharmony_ci * @param interval Advertise interval. 24695489c19Sopenharmony_ci * @since 6 24795489c19Sopenharmony_ci */ 24895489c19Sopenharmony_ci void SetInterval(uint16_t interval); 24995489c19Sopenharmony_ci 25095489c19Sopenharmony_ci /** 25195489c19Sopenharmony_ci * @brief Set Tx power. 25295489c19Sopenharmony_ci * 25395489c19Sopenharmony_ci * @param txPower Tx power. 25495489c19Sopenharmony_ci * @since 6 25595489c19Sopenharmony_ci */ 25695489c19Sopenharmony_ci void SetTxPower(int8_t txPower); 25795489c19Sopenharmony_ci 25895489c19Sopenharmony_ci /** 25995489c19Sopenharmony_ci * @brief Get primary phy. 26095489c19Sopenharmony_ci * 26195489c19Sopenharmony_ci * @return Returns primary phy. 26295489c19Sopenharmony_ci * @since 6 26395489c19Sopenharmony_ci */ 26495489c19Sopenharmony_ci int GetPrimaryPhy() const; 26595489c19Sopenharmony_ci 26695489c19Sopenharmony_ci /** 26795489c19Sopenharmony_ci * @brief Set primary phy. 26895489c19Sopenharmony_ci * 26995489c19Sopenharmony_ci * @param primaryPhy Primary phy. 27095489c19Sopenharmony_ci * @since 6 27195489c19Sopenharmony_ci */ 27295489c19Sopenharmony_ci void SetPrimaryPhy(int primaryPhy); 27395489c19Sopenharmony_ci 27495489c19Sopenharmony_ci /** 27595489c19Sopenharmony_ci * @brief Get second phy. 27695489c19Sopenharmony_ci * 27795489c19Sopenharmony_ci * @return Returns primary phy. 27895489c19Sopenharmony_ci * @since 6 27995489c19Sopenharmony_ci */ 28095489c19Sopenharmony_ci int GetSecondaryPhy() const; 28195489c19Sopenharmony_ci 28295489c19Sopenharmony_ci /** 28395489c19Sopenharmony_ci * @brief Set second phy. 28495489c19Sopenharmony_ci * 28595489c19Sopenharmony_ci * @param secondaryPhy Second phy. 28695489c19Sopenharmony_ci * @since 6 28795489c19Sopenharmony_ci */ 28895489c19Sopenharmony_ci void SetSecondaryPhy(int secondaryPhy); 28995489c19Sopenharmony_ci 29095489c19Sopenharmony_ci /** 29195489c19Sopenharmony_ci * @brief Get own address. 29295489c19Sopenharmony_ci * 29395489c19Sopenharmony_ci * @param addr Own address. 29495489c19Sopenharmony_ci * @since 6 29595489c19Sopenharmony_ci */ 29695489c19Sopenharmony_ci std::array<uint8_t, OHOS_BD_ADDR_LEN> GetOwnAddr() const; 29795489c19Sopenharmony_ci 29895489c19Sopenharmony_ci /** 29995489c19Sopenharmony_ci * @brief Set own address. 30095489c19Sopenharmony_ci * 30195489c19Sopenharmony_ci * @param addr Own address. 30295489c19Sopenharmony_ci * @since 6 30395489c19Sopenharmony_ci */ 30495489c19Sopenharmony_ci void SetOwnAddr(const std::array<uint8_t, OHOS_BD_ADDR_LEN>& addr); 30595489c19Sopenharmony_ci 30695489c19Sopenharmony_ci /** 30795489c19Sopenharmony_ci * @brief Get own address type. 30895489c19Sopenharmony_ci * 30995489c19Sopenharmony_ci * @return Returns own address type. 31095489c19Sopenharmony_ci * @since 6 31195489c19Sopenharmony_ci */ 31295489c19Sopenharmony_ci int8_t GetOwnAddrType() const; 31395489c19Sopenharmony_ci 31495489c19Sopenharmony_ci /** 31595489c19Sopenharmony_ci * @brief Set own address type. 31695489c19Sopenharmony_ci * 31795489c19Sopenharmony_ci * @param addrType Own address type. 31895489c19Sopenharmony_ci * @since 6 31995489c19Sopenharmony_ci */ 32095489c19Sopenharmony_ci void SetOwnAddrType(int8_t addrType); 32195489c19Sopenharmony_ci 32295489c19Sopenharmony_ciprivate: 32395489c19Sopenharmony_ci bool connectable_ = true; 32495489c19Sopenharmony_ci bool legacyMode_ = true; 32595489c19Sopenharmony_ci uint16_t interval_ = BLE_ADV_DEFAULT_INTERVAL; 32695489c19Sopenharmony_ci int8_t txPower_ = BLE_ADV_TX_POWER_MEDIUM_VALUE; 32795489c19Sopenharmony_ci int primaryPhy_ = BLE_ADVERTISEMENT_PHY_1M; 32895489c19Sopenharmony_ci int secondaryPhy_ = BLE_ADVERTISEMENT_PHY_1M; 32995489c19Sopenharmony_ci std::array<uint8_t, OHOS_BD_ADDR_LEN> ownAddr_ = {}; 33095489c19Sopenharmony_ci int8_t ownAddrType_ = -1; 33195489c19Sopenharmony_ci}; 33295489c19Sopenharmony_ci 33395489c19Sopenharmony_ci/** 33495489c19Sopenharmony_ci * @brief Represents advertise callback. 33595489c19Sopenharmony_ci * 33695489c19Sopenharmony_ci * @since 6 33795489c19Sopenharmony_ci */ 33895489c19Sopenharmony_ciclass BleAdvertiseCallback { 33995489c19Sopenharmony_cipublic: 34095489c19Sopenharmony_ci /** 34195489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BleAdvertiseCallback</b> instance. 34295489c19Sopenharmony_ci * 34395489c19Sopenharmony_ci * @since 6 34495489c19Sopenharmony_ci */ 34595489c19Sopenharmony_ci virtual ~BleAdvertiseCallback() = default; 34695489c19Sopenharmony_ci 34795489c19Sopenharmony_ci /** 34895489c19Sopenharmony_ci * @brief Start advertising result event callback. 34995489c19Sopenharmony_ci * 35095489c19Sopenharmony_ci * @param result Start advertising result. 35195489c19Sopenharmony_ci * @param advHandle advertising handle. 35295489c19Sopenharmony_ci * @since 6 35395489c19Sopenharmony_ci */ 35495489c19Sopenharmony_ci virtual void OnStartResultEvent(int result, int advHandle) = 0; 35595489c19Sopenharmony_ci 35695489c19Sopenharmony_ci /** 35795489c19Sopenharmony_ci * @brief Enable advertising result event callback. 35895489c19Sopenharmony_ci * 35995489c19Sopenharmony_ci * @param result Enable advertising result. 36095489c19Sopenharmony_ci * @param advHandle advertising handle. 36195489c19Sopenharmony_ci * @since 11 36295489c19Sopenharmony_ci */ 36395489c19Sopenharmony_ci virtual void OnEnableResultEvent(int result, int advHandle) = 0; 36495489c19Sopenharmony_ci 36595489c19Sopenharmony_ci /** 36695489c19Sopenharmony_ci * @brief Disable advertising result event callback. 36795489c19Sopenharmony_ci * 36895489c19Sopenharmony_ci * @param result Disable advertising result. 36995489c19Sopenharmony_ci * @param advHandle advertising handle. 37095489c19Sopenharmony_ci * @since 11 37195489c19Sopenharmony_ci */ 37295489c19Sopenharmony_ci virtual void OnDisableResultEvent(int result, int advHandle) = 0; 37395489c19Sopenharmony_ci 37495489c19Sopenharmony_ci /** 37595489c19Sopenharmony_ci * @brief Stop advertising result event callback. 37695489c19Sopenharmony_ci * 37795489c19Sopenharmony_ci * @param result Stop advertising result. 37895489c19Sopenharmony_ci * @param advHandle advertising handle. 37995489c19Sopenharmony_ci * @since 11 38095489c19Sopenharmony_ci */ 38195489c19Sopenharmony_ci virtual void OnStopResultEvent(int result, int advHandle) = 0; 38295489c19Sopenharmony_ci 38395489c19Sopenharmony_ci /** 38495489c19Sopenharmony_ci * @brief Set advertising data result event callback. 38595489c19Sopenharmony_ci * 38695489c19Sopenharmony_ci * @param result Set advertising data result 38795489c19Sopenharmony_ci * @since 6 38895489c19Sopenharmony_ci */ 38995489c19Sopenharmony_ci virtual void OnSetAdvDataEvent(int result) = 0; 39095489c19Sopenharmony_ci 39195489c19Sopenharmony_ci /** 39295489c19Sopenharmony_ci * @brief Get advertising handle callback. 39395489c19Sopenharmony_ci * 39495489c19Sopenharmony_ci * @param result get advertising handle result. 39595489c19Sopenharmony_ci * @param advHandle advertising handle. 39695489c19Sopenharmony_ci * @since 11 39795489c19Sopenharmony_ci */ 39895489c19Sopenharmony_ci virtual void OnGetAdvHandleEvent(int result, int advHandle) = 0; 39995489c19Sopenharmony_ci}; 40095489c19Sopenharmony_ci 40195489c19Sopenharmony_ci/** 40295489c19Sopenharmony_ci * @brief Represents advertiser. 40395489c19Sopenharmony_ci * 40495489c19Sopenharmony_ci * @since 6 40595489c19Sopenharmony_ci */ 40695489c19Sopenharmony_ciclass BLUETOOTH_API BleAdvertiser { 40795489c19Sopenharmony_cipublic: 40895489c19Sopenharmony_ci /** 40995489c19Sopenharmony_ci * @brief A constructor of BleAdvertiser. 41095489c19Sopenharmony_ci * 41195489c19Sopenharmony_ci * @since 11 41295489c19Sopenharmony_ci * 41395489c19Sopenharmony_ci */ 41495489c19Sopenharmony_ci static std::shared_ptr<BleAdvertiser> CreateInstance(void); 41595489c19Sopenharmony_ci 41695489c19Sopenharmony_ci /** 41795489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BleAdvertiser</b> instance. 41895489c19Sopenharmony_ci * 41995489c19Sopenharmony_ci * @since 6 42095489c19Sopenharmony_ci */ 42195489c19Sopenharmony_ci ~BleAdvertiser(); 42295489c19Sopenharmony_ci 42395489c19Sopenharmony_ci /** 42495489c19Sopenharmony_ci * @brief Start advertising. 42595489c19Sopenharmony_ci * 42695489c19Sopenharmony_ci * @param settings Advertise settings. 42795489c19Sopenharmony_ci * @param advData Advertise data. 42895489c19Sopenharmony_ci * @param scanResponse Scan response. 42995489c19Sopenharmony_ci * @param duration advertise duration. 43095489c19Sopenharmony_ci * @param callback Advertise callback. 43195489c19Sopenharmony_ci * @since 6 43295489c19Sopenharmony_ci */ 43395489c19Sopenharmony_ci int StartAdvertising(const BleAdvertiserSettings &settings, const BleAdvertiserData &advData, 43495489c19Sopenharmony_ci const BleAdvertiserData &scanResponse, uint16_t duration, std::shared_ptr<BleAdvertiseCallback> callback); 43595489c19Sopenharmony_ci 43695489c19Sopenharmony_ci /** 43795489c19Sopenharmony_ci * @brief Start advertising. 43895489c19Sopenharmony_ci * 43995489c19Sopenharmony_ci * @param settings Advertise settings. 44095489c19Sopenharmony_ci * @param advData Advertise data. 44195489c19Sopenharmony_ci * @param scanResponse Scan response. 44295489c19Sopenharmony_ci * @param duration advertise duration. 44395489c19Sopenharmony_ci * @param callback Advertise callback. 44495489c19Sopenharmony_ci * @since 6 44595489c19Sopenharmony_ci */ 44695489c19Sopenharmony_ci int StartAdvertising(const BleAdvertiserSettings &settings, const std::vector<uint8_t> &advData, 44795489c19Sopenharmony_ci const std::vector<uint8_t> &scanResponse, uint16_t duration, std::shared_ptr<BleAdvertiseCallback> callback); 44895489c19Sopenharmony_ci 44995489c19Sopenharmony_ci /** 45095489c19Sopenharmony_ci * @brief Enable advertising. 45195489c19Sopenharmony_ci * 45295489c19Sopenharmony_ci * @param advHandle Advertise handle. 45395489c19Sopenharmony_ci * @param duration Advertise duration. 45495489c19Sopenharmony_ci * @param callback Advertise callback. 45595489c19Sopenharmony_ci * @since 11 45695489c19Sopenharmony_ci */ 45795489c19Sopenharmony_ci int EnableAdvertising(uint8_t advHandle, uint16_t duration, std::shared_ptr<BleAdvertiseCallback> callback); 45895489c19Sopenharmony_ci 45995489c19Sopenharmony_ci /** 46095489c19Sopenharmony_ci * @brief Disable advertising. 46195489c19Sopenharmony_ci * 46295489c19Sopenharmony_ci * @param advHandle Advertise handle. 46395489c19Sopenharmony_ci * @param callback Advertise callback. 46495489c19Sopenharmony_ci * @since 11 46595489c19Sopenharmony_ci */ 46695489c19Sopenharmony_ci int DisableAdvertising(uint8_t advHandle, std::shared_ptr<BleAdvertiseCallback> callback); 46795489c19Sopenharmony_ci 46895489c19Sopenharmony_ci void SetAdvertisingData(const std::vector<uint8_t> &advData, const std::vector<uint8_t> &scanResponse, 46995489c19Sopenharmony_ci std::shared_ptr<BleAdvertiseCallback> callback); 47095489c19Sopenharmony_ci int StopAdvertising(std::shared_ptr<BleAdvertiseCallback> callback); 47195489c19Sopenharmony_ci 47295489c19Sopenharmony_ci /** 47395489c19Sopenharmony_ci * @brief Cleans up advertisers. 47495489c19Sopenharmony_ci * 47595489c19Sopenharmony_ci * @param callback Advertise callback. 47695489c19Sopenharmony_ci * @since 6 47795489c19Sopenharmony_ci */ 47895489c19Sopenharmony_ci void Close(std::shared_ptr<BleAdvertiseCallback> callback); 47995489c19Sopenharmony_ci 48095489c19Sopenharmony_ci /** 48195489c19Sopenharmony_ci * @brief Get Advertise handle. 48295489c19Sopenharmony_ci * 48395489c19Sopenharmony_ci * @param callback Advertise callback. 48495489c19Sopenharmony_ci * @since 6 48595489c19Sopenharmony_ci */ 48695489c19Sopenharmony_ci uint8_t GetAdvHandle(std::shared_ptr<BleAdvertiseCallback> callback); 48795489c19Sopenharmony_ci 48895489c19Sopenharmony_ciprivate: 48995489c19Sopenharmony_ci BleAdvertiser(); 49095489c19Sopenharmony_ci BLUETOOTH_DISALLOW_COPY_AND_ASSIGN(BleAdvertiser); 49195489c19Sopenharmony_ci BLUETOOTH_DECLARE_IMPL(); 49295489c19Sopenharmony_ci 49395489c19Sopenharmony_ci //The passkey pattern of C++ 49495489c19Sopenharmony_ci struct PassKey { 49595489c19Sopenharmony_ci PassKey() {}; 49695489c19Sopenharmony_ci }; 49795489c19Sopenharmony_cipublic: 49895489c19Sopenharmony_ci explicit BleAdvertiser(PassKey) : BleAdvertiser() {}; 49995489c19Sopenharmony_ci}; 50095489c19Sopenharmony_ci} // namespace Bluetooth 50195489c19Sopenharmony_ci} // namespace OHOS 50295489c19Sopenharmony_ci#endif