195489c19Sopenharmony_ci/* 295489c19Sopenharmony_ci * Copyright (C) 2021-2022 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 bluetooth host, including observer and common functions. 2195489c19Sopenharmony_ci * 2295489c19Sopenharmony_ci * @since 6 2395489c19Sopenharmony_ci */ 2495489c19Sopenharmony_ci 2595489c19Sopenharmony_ci/** 2695489c19Sopenharmony_ci * @file bluetooth_host.h 2795489c19Sopenharmony_ci * 2895489c19Sopenharmony_ci * @brief Framework bluetooth host interface. 2995489c19Sopenharmony_ci * 3095489c19Sopenharmony_ci * @since 6 3195489c19Sopenharmony_ci */ 3295489c19Sopenharmony_ci 3395489c19Sopenharmony_ci#ifndef BLUETOOTH_HOST_H 3495489c19Sopenharmony_ci#define BLUETOOTH_HOST_H 3595489c19Sopenharmony_ci 3695489c19Sopenharmony_ci#include <string> 3795489c19Sopenharmony_ci 3895489c19Sopenharmony_ci#include "bluetooth_battery_info.h" 3995489c19Sopenharmony_ci#include "bluetooth_def.h" 4095489c19Sopenharmony_ci#include "bluetooth_types.h" 4195489c19Sopenharmony_ci#include "bluetooth_remote_device.h" 4295489c19Sopenharmony_ci#include "bluetooth_device_class.h" 4395489c19Sopenharmony_ci#include "refbase.h" 4495489c19Sopenharmony_ci#include "bluetooth_no_destructor.h" 4595489c19Sopenharmony_ci 4695489c19Sopenharmony_cinamespace OHOS { class IRemoteObject; } 4795489c19Sopenharmony_cinamespace OHOS { 4895489c19Sopenharmony_cinamespace Bluetooth { 4995489c19Sopenharmony_ci/** 5095489c19Sopenharmony_ci * @brief Represents framework host device basic observer. 5195489c19Sopenharmony_ci * 5295489c19Sopenharmony_ci * @since 6 5395489c19Sopenharmony_ci */ 5495489c19Sopenharmony_ciclass BluetoothHostObserver { 5595489c19Sopenharmony_cipublic: 5695489c19Sopenharmony_ci /** 5795489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BluetoothHostObserver</b> instance. 5895489c19Sopenharmony_ci * 5995489c19Sopenharmony_ci * @since 6 6095489c19Sopenharmony_ci */ 6195489c19Sopenharmony_ci virtual ~BluetoothHostObserver() = default; 6295489c19Sopenharmony_ci 6395489c19Sopenharmony_ci // common 6495489c19Sopenharmony_ci /** 6595489c19Sopenharmony_ci * @brief Adapter state change function. 6695489c19Sopenharmony_ci * 6795489c19Sopenharmony_ci * @param transport Transport type when state change. 6895489c19Sopenharmony_ci * BTTransport::ADAPTER_BREDR : classic; 6995489c19Sopenharmony_ci * BTTransport::ADAPTER_BLE : ble. 7095489c19Sopenharmony_ci * @param state Change to the new state. 7195489c19Sopenharmony_ci * BTStateID::STATE_TURNING_ON; 7295489c19Sopenharmony_ci * BTStateID::STATE_TURN_ON; 7395489c19Sopenharmony_ci * BTStateID::STATE_TURNING_OFF; 7495489c19Sopenharmony_ci * BTStateID::STATE_TURN_OFF. 7595489c19Sopenharmony_ci * @since 6 7695489c19Sopenharmony_ci */ 7795489c19Sopenharmony_ci virtual void OnStateChanged(const int transport, const int status) = 0; 7895489c19Sopenharmony_ci 7995489c19Sopenharmony_ci // gap 8095489c19Sopenharmony_ci /** 8195489c19Sopenharmony_ci * @brief Discovery state changed observer. 8295489c19Sopenharmony_ci * 8395489c19Sopenharmony_ci * @param status Device discovery status. 8495489c19Sopenharmony_ci * @since 6 8595489c19Sopenharmony_ci */ 8695489c19Sopenharmony_ci virtual void OnDiscoveryStateChanged(int status) = 0; 8795489c19Sopenharmony_ci 8895489c19Sopenharmony_ci /** 8995489c19Sopenharmony_ci * @brief Discovery result observer. 9095489c19Sopenharmony_ci * 9195489c19Sopenharmony_ci * @param device Remote device. 9295489c19Sopenharmony_ci * @param rssi Rssi of device. 9395489c19Sopenharmony_ci * @param deviceName Name of device. 9495489c19Sopenharmony_ci * @param deviceClass Class of device. 9595489c19Sopenharmony_ci * @since 6 9695489c19Sopenharmony_ci */ 9795489c19Sopenharmony_ci virtual void OnDiscoveryResult( 9895489c19Sopenharmony_ci const BluetoothRemoteDevice &device, int rssi, const std::string deviceName, int deviceClass) = 0; 9995489c19Sopenharmony_ci 10095489c19Sopenharmony_ci /** 10195489c19Sopenharmony_ci * @brief Pair request observer. 10295489c19Sopenharmony_ci * 10395489c19Sopenharmony_ci * @param device Remote device. 10495489c19Sopenharmony_ci * @since 6 10595489c19Sopenharmony_ci */ 10695489c19Sopenharmony_ci virtual void OnPairRequested(const BluetoothRemoteDevice &device) = 0; 10795489c19Sopenharmony_ci 10895489c19Sopenharmony_ci /** 10995489c19Sopenharmony_ci * @brief Pair confirmed observer. 11095489c19Sopenharmony_ci * 11195489c19Sopenharmony_ci * @param device Remote device. 11295489c19Sopenharmony_ci * @param reqType Pair type. 11395489c19Sopenharmony_ci * @param number Paired passkey. 11495489c19Sopenharmony_ci * @since 6 11595489c19Sopenharmony_ci */ 11695489c19Sopenharmony_ci virtual void OnPairConfirmed(const BluetoothRemoteDevice &device, int reqType, int number) = 0; 11795489c19Sopenharmony_ci 11895489c19Sopenharmony_ci /** 11995489c19Sopenharmony_ci * @brief Scan mode changed observer. 12095489c19Sopenharmony_ci * 12195489c19Sopenharmony_ci * @param mode Device scan mode. 12295489c19Sopenharmony_ci * @since 6 12395489c19Sopenharmony_ci */ 12495489c19Sopenharmony_ci virtual void OnScanModeChanged(int mode) = 0; 12595489c19Sopenharmony_ci 12695489c19Sopenharmony_ci /** 12795489c19Sopenharmony_ci * @brief Device name changed observer. 12895489c19Sopenharmony_ci * 12995489c19Sopenharmony_ci * @param deviceName Device name. 13095489c19Sopenharmony_ci * @since 6 13195489c19Sopenharmony_ci */ 13295489c19Sopenharmony_ci virtual void OnDeviceNameChanged(const std::string &deviceName) = 0; 13395489c19Sopenharmony_ci 13495489c19Sopenharmony_ci /** 13595489c19Sopenharmony_ci * @brief Device address changed observer. 13695489c19Sopenharmony_ci * 13795489c19Sopenharmony_ci * @param address Device address. 13895489c19Sopenharmony_ci * @since 6 13995489c19Sopenharmony_ci */ 14095489c19Sopenharmony_ci virtual void OnDeviceAddrChanged(const std::string &address) = 0; 14195489c19Sopenharmony_ci}; 14295489c19Sopenharmony_ci 14395489c19Sopenharmony_ci/** 14495489c19Sopenharmony_ci * @brief Represents remote device observer. 14595489c19Sopenharmony_ci * 14695489c19Sopenharmony_ci * @since 6 14795489c19Sopenharmony_ci */ 14895489c19Sopenharmony_ciclass BluetoothRemoteDeviceObserver { 14995489c19Sopenharmony_cipublic: 15095489c19Sopenharmony_ci /** 15195489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BluetoothRemoteDeviceObserver</b> instance. 15295489c19Sopenharmony_ci * 15395489c19Sopenharmony_ci * @since 6 15495489c19Sopenharmony_ci */ 15595489c19Sopenharmony_ci virtual ~BluetoothRemoteDeviceObserver() = default; 15695489c19Sopenharmony_ci 15795489c19Sopenharmony_ci /** 15895489c19Sopenharmony_ci * @brief Acl state changed observer. 15995489c19Sopenharmony_ci * 16095489c19Sopenharmony_ci * @param device Remote device. 16195489c19Sopenharmony_ci * @param state Remote device acl state. 16295489c19Sopenharmony_ci * @param reason Remote device reason. 16395489c19Sopenharmony_ci * @since 6 16495489c19Sopenharmony_ci */ 16595489c19Sopenharmony_ci virtual void OnAclStateChanged(const BluetoothRemoteDevice &device, int state, unsigned int reason) = 0; 16695489c19Sopenharmony_ci 16795489c19Sopenharmony_ci /** 16895489c19Sopenharmony_ci * @brief Pair status changed observer. 16995489c19Sopenharmony_ci * 17095489c19Sopenharmony_ci * @param device Remote device. 17195489c19Sopenharmony_ci * @param status Remote device pair status. 17295489c19Sopenharmony_ci * @param cause Pair fail cause. 17395489c19Sopenharmony_ci * @since 12 17495489c19Sopenharmony_ci */ 17595489c19Sopenharmony_ci virtual void OnPairStatusChanged(const BluetoothRemoteDevice &device, int status, int cause) = 0; 17695489c19Sopenharmony_ci 17795489c19Sopenharmony_ci /** 17895489c19Sopenharmony_ci * @brief Remote uuid changed observer. 17995489c19Sopenharmony_ci * 18095489c19Sopenharmony_ci * @param device Remote device. 18195489c19Sopenharmony_ci * @param uuids Remote device uuids. 18295489c19Sopenharmony_ci * @since 6 18395489c19Sopenharmony_ci */ 18495489c19Sopenharmony_ci virtual void OnRemoteUuidChanged(const BluetoothRemoteDevice &device, const std::vector<ParcelUuid> &uuids) = 0; 18595489c19Sopenharmony_ci 18695489c19Sopenharmony_ci /** 18795489c19Sopenharmony_ci * @brief Remote name changed observer. 18895489c19Sopenharmony_ci * 18995489c19Sopenharmony_ci * @param device Remote device. 19095489c19Sopenharmony_ci * @param deviceName Remote device name. 19195489c19Sopenharmony_ci * @since 6 19295489c19Sopenharmony_ci */ 19395489c19Sopenharmony_ci virtual void OnRemoteNameChanged(const BluetoothRemoteDevice &device, const std::string &deviceName) = 0; 19495489c19Sopenharmony_ci 19595489c19Sopenharmony_ci /** 19695489c19Sopenharmony_ci * @brief Remote alias changed observer. 19795489c19Sopenharmony_ci * 19895489c19Sopenharmony_ci * @param device Remote device. 19995489c19Sopenharmony_ci * @param alias Remote device alias. 20095489c19Sopenharmony_ci * @since 6 20195489c19Sopenharmony_ci */ 20295489c19Sopenharmony_ci virtual void OnRemoteAliasChanged(const BluetoothRemoteDevice &device, const std::string &alias) = 0; 20395489c19Sopenharmony_ci 20495489c19Sopenharmony_ci /** 20595489c19Sopenharmony_ci * @brief Remote cod changed observer. 20695489c19Sopenharmony_ci * 20795489c19Sopenharmony_ci * @param device Remote device. 20895489c19Sopenharmony_ci * @param cod Remote device cod. 20995489c19Sopenharmony_ci * @since 6 21095489c19Sopenharmony_ci */ 21195489c19Sopenharmony_ci virtual void OnRemoteCodChanged(const BluetoothRemoteDevice &device, const BluetoothDeviceClass &cod) = 0; 21295489c19Sopenharmony_ci 21395489c19Sopenharmony_ci /** 21495489c19Sopenharmony_ci * @brief Remote battery level changed observer. 21595489c19Sopenharmony_ci * 21695489c19Sopenharmony_ci * @param device Remote device. 21795489c19Sopenharmony_ci * @param cod Remote device battery Level. 21895489c19Sopenharmony_ci * @since 6 21995489c19Sopenharmony_ci */ 22095489c19Sopenharmony_ci virtual void OnRemoteBatteryLevelChanged(const BluetoothRemoteDevice &device, int batteryLevel) = 0; 22195489c19Sopenharmony_ci 22295489c19Sopenharmony_ci /** 22395489c19Sopenharmony_ci * @brief Remote rssi event observer. 22495489c19Sopenharmony_ci * 22595489c19Sopenharmony_ci * @param device Remote device. 22695489c19Sopenharmony_ci * @param rssi Remote device rssi. 22795489c19Sopenharmony_ci * @param status Read status. 22895489c19Sopenharmony_ci * @since 6 22995489c19Sopenharmony_ci */ 23095489c19Sopenharmony_ci virtual void OnReadRemoteRssiEvent(const BluetoothRemoteDevice &device, int rssi, int status) = 0; 23195489c19Sopenharmony_ci 23295489c19Sopenharmony_ci /** 23395489c19Sopenharmony_ci * @brief Remote device battery info observer. 23495489c19Sopenharmony_ci * 23595489c19Sopenharmony_ci * @param device Remote device. 23695489c19Sopenharmony_ci * @param batteryInfo Remote device batteryInfo 23795489c19Sopenharmony_ci * @since 12 23895489c19Sopenharmony_ci */ 23995489c19Sopenharmony_ci virtual void OnRemoteBatteryChanged(const BluetoothRemoteDevice &device, const DeviceBatteryInfo &batteryInfo) 24095489c19Sopenharmony_ci {}; 24195489c19Sopenharmony_ci 24295489c19Sopenharmony_ci /** 24395489c19Sopenharmony_ci * @brief Remote device common value observer. 24495489c19Sopenharmony_ci * 24595489c19Sopenharmony_ci * @param device Remote device. 24695489c19Sopenharmony_ci * @param value Remote device report info 24795489c19Sopenharmony_ci * @since 12 24895489c19Sopenharmony_ci */ 24995489c19Sopenharmony_ci virtual void OnRemoteDeviceCommonInfoReport(const BluetoothRemoteDevice &device, const std::vector<uint8_t> &value) 25095489c19Sopenharmony_ci {}; 25195489c19Sopenharmony_ci}; 25295489c19Sopenharmony_ci 25395489c19Sopenharmony_ci/** 25495489c19Sopenharmony_ci * @brief Represents bluetooth resource manager observer. 25595489c19Sopenharmony_ci * 25695489c19Sopenharmony_ci * @since 12 25795489c19Sopenharmony_ci */ 25895489c19Sopenharmony_ciclass BluetoothResourceManagerObserver { 25995489c19Sopenharmony_cipublic: 26095489c19Sopenharmony_ci /** 26195489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BluetoothResourceManagerObserver</b> instance. 26295489c19Sopenharmony_ci * 26395489c19Sopenharmony_ci * @since 12 26495489c19Sopenharmony_ci */ 26595489c19Sopenharmony_ci virtual ~BluetoothResourceManagerObserver() = default; 26695489c19Sopenharmony_ci 26795489c19Sopenharmony_ci /** 26895489c19Sopenharmony_ci * @brief sensing state changed observer. 26995489c19Sopenharmony_ci * 27095489c19Sopenharmony_ci * @param eventId bluetooth resource manager event id. 27195489c19Sopenharmony_ci * @param info bluetooth sensing information. 27295489c19Sopenharmony_ci * @since 12 27395489c19Sopenharmony_ci */ 27495489c19Sopenharmony_ci virtual void OnSensingStateChanged(uint8_t eventId, const SensingInfo &info) 27595489c19Sopenharmony_ci {}; 27695489c19Sopenharmony_ci 27795489c19Sopenharmony_ci /** 27895489c19Sopenharmony_ci * @brief bluetooth resource decision observer. 27995489c19Sopenharmony_ci * 28095489c19Sopenharmony_ci * @param eventId bluetooth resource manager event id. 28195489c19Sopenharmony_ci * @param info bluetooth sensing information. 28295489c19Sopenharmony_ci * @param result bluetooth resource decision result. 28395489c19Sopenharmony_ci * @since 12 28495489c19Sopenharmony_ci */ 28595489c19Sopenharmony_ci virtual void OnBluetoothResourceDecision(uint8_t eventId, const SensingInfo &info, uint32_t &result) 28695489c19Sopenharmony_ci {}; 28795489c19Sopenharmony_ci}; 28895489c19Sopenharmony_ci 28995489c19Sopenharmony_ci/** 29095489c19Sopenharmony_ci * @brief Represents framework host device. 29195489c19Sopenharmony_ci * 29295489c19Sopenharmony_ci * @since 6 29395489c19Sopenharmony_ci */ 29495489c19Sopenharmony_ciclass BLUETOOTH_API BluetoothHost { 29595489c19Sopenharmony_cipublic: 29695489c19Sopenharmony_ci // common 29795489c19Sopenharmony_ci /** 29895489c19Sopenharmony_ci * @brief Get default host device. 29995489c19Sopenharmony_ci * 30095489c19Sopenharmony_ci * @return Returns the singleton instance. 30195489c19Sopenharmony_ci * @since 6 30295489c19Sopenharmony_ci */ 30395489c19Sopenharmony_ci static BluetoothHost &GetDefaultHost(); 30495489c19Sopenharmony_ci 30595489c19Sopenharmony_ci /** 30695489c19Sopenharmony_ci * @brief Get remote device instance. 30795489c19Sopenharmony_ci * 30895489c19Sopenharmony_ci * @param addr Remote device address. 30995489c19Sopenharmony_ci * @param transport Adapter transport. 31095489c19Sopenharmony_ci * @return Returns remote device instance. 31195489c19Sopenharmony_ci * @since 6 31295489c19Sopenharmony_ci */ 31395489c19Sopenharmony_ci BluetoothRemoteDevice GetRemoteDevice(const std::string &addr, int transport) const; 31495489c19Sopenharmony_ci 31595489c19Sopenharmony_ci /** 31695489c19Sopenharmony_ci * @brief Register observer. 31795489c19Sopenharmony_ci * 31895489c19Sopenharmony_ci * @param observer Class BluetoothHostObserver pointer to register observer. 31995489c19Sopenharmony_ci * @since 6 32095489c19Sopenharmony_ci */ 32195489c19Sopenharmony_ci void RegisterObserver(std::shared_ptr<BluetoothHostObserver> observer); 32295489c19Sopenharmony_ci 32395489c19Sopenharmony_ci /** 32495489c19Sopenharmony_ci * @brief Deregister observer. 32595489c19Sopenharmony_ci * 32695489c19Sopenharmony_ci * @param observer Class BluetoothHostObserver pointer to deregister observer. 32795489c19Sopenharmony_ci * @since 6 32895489c19Sopenharmony_ci */ 32995489c19Sopenharmony_ci void DeregisterObserver(std::shared_ptr<BluetoothHostObserver> observer); 33095489c19Sopenharmony_ci 33195489c19Sopenharmony_ci /** 33295489c19Sopenharmony_ci * @brief Enable classic. 33395489c19Sopenharmony_ci * 33495489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is accepted; 33595489c19Sopenharmony_ci * returns <b>false</b> if the operation is rejected. 33695489c19Sopenharmony_ci * @since 6 33795489c19Sopenharmony_ci */ 33895489c19Sopenharmony_ci int EnableBt(); 33995489c19Sopenharmony_ci 34095489c19Sopenharmony_ci /** 34195489c19Sopenharmony_ci * @brief Disable classic. 34295489c19Sopenharmony_ci * 34395489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is accepted; 34495489c19Sopenharmony_ci * returns <b>false</b> if the operation is rejected. 34595489c19Sopenharmony_ci * @since 6 34695489c19Sopenharmony_ci */ 34795489c19Sopenharmony_ci int DisableBt(); 34895489c19Sopenharmony_ci 34995489c19Sopenharmony_ci /** 35095489c19Sopenharmony_ci * @brief Get classic enable/disable state. 35195489c19Sopenharmony_ci * 35295489c19Sopenharmony_ci * @return Returns classic enable/disable state. 35395489c19Sopenharmony_ci * BTStateID::STATE_TURNING_ON; 35495489c19Sopenharmony_ci * BTStateID::STATE_TURN_ON; 35595489c19Sopenharmony_ci * BTStateID::STATE_TURNING_OFF; 35695489c19Sopenharmony_ci * BTStateID::STATE_TURN_OFF. 35795489c19Sopenharmony_ci * @since 6 35895489c19Sopenharmony_ci */ 35995489c19Sopenharmony_ci int GetBtState() const; 36095489c19Sopenharmony_ci 36195489c19Sopenharmony_ci /** 36295489c19Sopenharmony_ci * @brief Get classic enable/disable state. 36395489c19Sopenharmony_ci * 36495489c19Sopenharmony_ci * @param Returns classic enable/disable state. 36595489c19Sopenharmony_ci * BTStateID::STATE_TURNING_ON; 36695489c19Sopenharmony_ci * BTStateID::STATE_TURN_ON; 36795489c19Sopenharmony_ci * BTStateID::STATE_TURNING_OFF; 36895489c19Sopenharmony_ci * BTStateID::STATE_TURN_OFF. 36995489c19Sopenharmony_ci * @since 6 37095489c19Sopenharmony_ci */ 37195489c19Sopenharmony_ci int GetBtState(int &state) const; 37295489c19Sopenharmony_ci 37395489c19Sopenharmony_ci /** 37495489c19Sopenharmony_ci * @brief Disable ble. 37595489c19Sopenharmony_ci * 37695489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is accepted; 37795489c19Sopenharmony_ci * returns <b>false</b> if the operation is rejected. 37895489c19Sopenharmony_ci * @since 6 37995489c19Sopenharmony_ci */ 38095489c19Sopenharmony_ci int DisableBle(); 38195489c19Sopenharmony_ci 38295489c19Sopenharmony_ci /** 38395489c19Sopenharmony_ci * @brief Enable ble. 38495489c19Sopenharmony_ci * 38595489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is accepted; 38695489c19Sopenharmony_ci * returns <b>false</b> if the operation is rejected. 38795489c19Sopenharmony_ci * @since 6 38895489c19Sopenharmony_ci */ 38995489c19Sopenharmony_ci int EnableBle(); 39095489c19Sopenharmony_ci 39195489c19Sopenharmony_ci /** 39295489c19Sopenharmony_ci * @brief Enable bluetooth to restrict mode. 39395489c19Sopenharmony_ci * 39495489c19Sopenharmony_ci * @return Returns BT_NO_ERROR if the operation is accepted; 39595489c19Sopenharmony_ci * returns others if the operation is rejected. 39695489c19Sopenharmony_ci * @since 12 39795489c19Sopenharmony_ci */ 39895489c19Sopenharmony_ci int EnableBluetoothToRestrictMode(void); 39995489c19Sopenharmony_ci 40095489c19Sopenharmony_ci /** 40195489c19Sopenharmony_ci * @brief Get br/edr enable/disable state. 40295489c19Sopenharmony_ci * 40395489c19Sopenharmony_ci * @return Returns <b>true</b> if br is enabled; 40495489c19Sopenharmony_ci * returns <b>false</b> if br is not enabled. 40595489c19Sopenharmony_ci * @since 6 40695489c19Sopenharmony_ci */ 40795489c19Sopenharmony_ci bool IsBrEnabled() const; 40895489c19Sopenharmony_ci 40995489c19Sopenharmony_ci /** 41095489c19Sopenharmony_ci * @brief Get ble enable/disable state. 41195489c19Sopenharmony_ci * 41295489c19Sopenharmony_ci * @return Returns <b>true</b> if ble is enabled; 41395489c19Sopenharmony_ci * returns <b>false</b> if ble is not enabled. 41495489c19Sopenharmony_ci * @since 6 41595489c19Sopenharmony_ci */ 41695489c19Sopenharmony_ci bool IsBleEnabled() const; 41795489c19Sopenharmony_ci 41895489c19Sopenharmony_ci /** 41995489c19Sopenharmony_ci * @brief Factory reset bluetooth service. 42095489c19Sopenharmony_ci * 42195489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 42295489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 42395489c19Sopenharmony_ci * @since 6 42495489c19Sopenharmony_ci */ 42595489c19Sopenharmony_ci int BluetoothFactoryReset(); 42695489c19Sopenharmony_ci 42795489c19Sopenharmony_ci /** 42895489c19Sopenharmony_ci * @brief Get profile service ID list. 42995489c19Sopenharmony_ci * 43095489c19Sopenharmony_ci * @return Returns vector of enabled profile services ID. 43195489c19Sopenharmony_ci * @since 6 43295489c19Sopenharmony_ci */ 43395489c19Sopenharmony_ci std::vector<uint32_t> GetProfileList() const; 43495489c19Sopenharmony_ci 43595489c19Sopenharmony_ci /** 43695489c19Sopenharmony_ci * @brief Get max audio connected devices number. 43795489c19Sopenharmony_ci * 43895489c19Sopenharmony_ci * @return Returns max device number that audio can connect. 43995489c19Sopenharmony_ci * @since 6 44095489c19Sopenharmony_ci */ 44195489c19Sopenharmony_ci int GetMaxNumConnectedAudioDevices() const; 44295489c19Sopenharmony_ci 44395489c19Sopenharmony_ci /** 44495489c19Sopenharmony_ci * @brief Get bluetooth connects state. 44595489c19Sopenharmony_ci * 44695489c19Sopenharmony_ci * @return Returns bluetooth connects state. 44795489c19Sopenharmony_ci * BTConnectState::CONNECTING; 44895489c19Sopenharmony_ci * BTConnectState::CONNECTED; 44995489c19Sopenharmony_ci * BTConnectState::DISCONNECTING; 45095489c19Sopenharmony_ci * BTConnectState::DISCONNECTED. 45195489c19Sopenharmony_ci * @since 6 45295489c19Sopenharmony_ci */ 45395489c19Sopenharmony_ci int GetBtConnectionState() const; 45495489c19Sopenharmony_ci 45595489c19Sopenharmony_ci /** 45695489c19Sopenharmony_ci * @brief Get bluetooth connects state. 45795489c19Sopenharmony_ci * 45895489c19Sopenharmony_ci * @return Returns bluetooth connects state. 45995489c19Sopenharmony_ci * BTConnectState::CONNECTING; 46095489c19Sopenharmony_ci * BTConnectState::CONNECTED; 46195489c19Sopenharmony_ci * BTConnectState::DISCONNECTING; 46295489c19Sopenharmony_ci * BTConnectState::DISCONNECTED. 46395489c19Sopenharmony_ci * @since 6 46495489c19Sopenharmony_ci */ 46595489c19Sopenharmony_ci int GetBtConnectionState(int &state) const; 46695489c19Sopenharmony_ci 46795489c19Sopenharmony_ci /** 46895489c19Sopenharmony_ci * @brief Get profile service connect state. 46995489c19Sopenharmony_ci * 47095489c19Sopenharmony_ci * @param profileID Profile service ID. 47195489c19Sopenharmony_ci * @return Returns connect state for designated profile service. 47295489c19Sopenharmony_ci * BTConnectState::CONNECTING; 47395489c19Sopenharmony_ci * BTConnectState::CONNECTED; 47495489c19Sopenharmony_ci * BTConnectState::DISCONNECTING; 47595489c19Sopenharmony_ci * BTConnectState::DISCONNECTED. 47695489c19Sopenharmony_ci * @since 6 47795489c19Sopenharmony_ci */ 47895489c19Sopenharmony_ci int GetBtProfileConnState(uint32_t profileId, int &state) const; 47995489c19Sopenharmony_ci 48095489c19Sopenharmony_ci /** 48195489c19Sopenharmony_ci * @brief Get local device supported uuids. 48295489c19Sopenharmony_ci * 48395489c19Sopenharmony_ci * @param[out] Vector which use to return support uuids. 48495489c19Sopenharmony_ci * @since 6 48595489c19Sopenharmony_ci */ 48695489c19Sopenharmony_ci void GetLocalSupportedUuids(std::vector<ParcelUuid> &uuids); 48795489c19Sopenharmony_ci 48895489c19Sopenharmony_ci /** 48995489c19Sopenharmony_ci * @brief Start adapter manager, passthrough only. 49095489c19Sopenharmony_ci * 49195489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 49295489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 49395489c19Sopenharmony_ci * @since 6 49495489c19Sopenharmony_ci */ 49595489c19Sopenharmony_ci bool Start(); 49695489c19Sopenharmony_ci 49795489c19Sopenharmony_ci /** 49895489c19Sopenharmony_ci * @brief Stop adapter manager, passthrough only. 49995489c19Sopenharmony_ci * 50095489c19Sopenharmony_ci * @since 6 50195489c19Sopenharmony_ci */ 50295489c19Sopenharmony_ci void Stop(); 50395489c19Sopenharmony_ci 50495489c19Sopenharmony_ci // gap 50595489c19Sopenharmony_ci /** 50695489c19Sopenharmony_ci * @brief Get local device class. 50795489c19Sopenharmony_ci * 50895489c19Sopenharmony_ci * @return Returns local device class. 50995489c19Sopenharmony_ci * @since 6 51095489c19Sopenharmony_ci */ 51195489c19Sopenharmony_ci BluetoothDeviceClass GetLocalDeviceClass() const; 51295489c19Sopenharmony_ci 51395489c19Sopenharmony_ci /** 51495489c19Sopenharmony_ci * @brief Set local device class. 51595489c19Sopenharmony_ci * 51695489c19Sopenharmony_ci * @param deviceClass Device class. 51795489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 51895489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 51995489c19Sopenharmony_ci * @since 6 52095489c19Sopenharmony_ci */ 52195489c19Sopenharmony_ci bool SetLocalDeviceClass(const BluetoothDeviceClass &deviceClass); 52295489c19Sopenharmony_ci 52395489c19Sopenharmony_ci /** 52495489c19Sopenharmony_ci * @brief Get local device address. 52595489c19Sopenharmony_ci * 52695489c19Sopenharmony_ci * @param addr local address. 52795489c19Sopenharmony_ci * @return Returns {@link BT_NO_ERROR} if the operation is successful; 52895489c19Sopenharmony_ci * returns an error code defined in {@link BtErrCode} otherwise. 52995489c19Sopenharmony_ci * @since 6 53095489c19Sopenharmony_ci */ 53195489c19Sopenharmony_ci int GetLocalAddress(std::string &addr) const; 53295489c19Sopenharmony_ci 53395489c19Sopenharmony_ci /** 53495489c19Sopenharmony_ci * @brief Get local device name. 53595489c19Sopenharmony_ci * 53695489c19Sopenharmony_ci * @return Returns local device name. 53795489c19Sopenharmony_ci * @since 6 53895489c19Sopenharmony_ci */ 53995489c19Sopenharmony_ci std::string GetLocalName() const; 54095489c19Sopenharmony_ci 54195489c19Sopenharmony_ci /** 54295489c19Sopenharmony_ci * @brief Get local device name. 54395489c19Sopenharmony_ci * 54495489c19Sopenharmony_ci * @return Returns local device name. 54595489c19Sopenharmony_ci * @since 6 54695489c19Sopenharmony_ci */ 54795489c19Sopenharmony_ci int GetLocalName(std::string &name) const; 54895489c19Sopenharmony_ci 54995489c19Sopenharmony_ci /** 55095489c19Sopenharmony_ci * @brief Set local device name. 55195489c19Sopenharmony_ci * 55295489c19Sopenharmony_ci * @param name Device name. 55395489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 55495489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 55595489c19Sopenharmony_ci * @since 6 55695489c19Sopenharmony_ci */ 55795489c19Sopenharmony_ci int SetLocalName(const std::string &name); 55895489c19Sopenharmony_ci 55995489c19Sopenharmony_ci /** 56095489c19Sopenharmony_ci * @brief Get device scan mode. 56195489c19Sopenharmony_ci * 56295489c19Sopenharmony_ci * @return Returns bluetooth scan mode. 56395489c19Sopenharmony_ci * @since 6 56495489c19Sopenharmony_ci */ 56595489c19Sopenharmony_ci int GetBtScanMode(int32_t &scanMode) const; 56695489c19Sopenharmony_ci 56795489c19Sopenharmony_ci /** 56895489c19Sopenharmony_ci * @brief Set device scan mode. 56995489c19Sopenharmony_ci * 57095489c19Sopenharmony_ci * @param mode Scan mode. 57195489c19Sopenharmony_ci * @param duration Scan time. 57295489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 57395489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 57495489c19Sopenharmony_ci * @since 6 57595489c19Sopenharmony_ci */ 57695489c19Sopenharmony_ci int SetBtScanMode(int mode, int duration); 57795489c19Sopenharmony_ci 57895489c19Sopenharmony_ci /** 57995489c19Sopenharmony_ci * @brief Get local device bondable mode. 58095489c19Sopenharmony_ci * 58195489c19Sopenharmony_ci * @param transport Adapter transport. 58295489c19Sopenharmony_ci * @return Returns local device bondable mode. 58395489c19Sopenharmony_ci * @since 6 58495489c19Sopenharmony_ci */ 58595489c19Sopenharmony_ci int GetBondableMode(int transport) const; 58695489c19Sopenharmony_ci 58795489c19Sopenharmony_ci /** 58895489c19Sopenharmony_ci * @brief Set local device bondable mode. 58995489c19Sopenharmony_ci * 59095489c19Sopenharmony_ci * @param transport Adapter transport. 59195489c19Sopenharmony_ci * @param mode Device bondable mode. 59295489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 59395489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 59495489c19Sopenharmony_ci * @since 6 59595489c19Sopenharmony_ci */ 59695489c19Sopenharmony_ci bool SetBondableMode(int transport, int mode); 59795489c19Sopenharmony_ci 59895489c19Sopenharmony_ci /** 59995489c19Sopenharmony_ci * @brief Get device address. 60095489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 60195489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 60295489c19Sopenharmony_ci * @since 6 60395489c19Sopenharmony_ci */ 60495489c19Sopenharmony_ci int StartBtDiscovery(); 60595489c19Sopenharmony_ci 60695489c19Sopenharmony_ci /** 60795489c19Sopenharmony_ci * @brief Cancel device discovery. 60895489c19Sopenharmony_ci * 60995489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 61095489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 61195489c19Sopenharmony_ci * @since 6 61295489c19Sopenharmony_ci */ 61395489c19Sopenharmony_ci int CancelBtDiscovery(); 61495489c19Sopenharmony_ci 61595489c19Sopenharmony_ci /** 61695489c19Sopenharmony_ci * @brief Check if device is discovering. 61795489c19Sopenharmony_ci * 61895489c19Sopenharmony_ci * @return Returns <b>BT_NO_ERROR</b> if the operation is successful; 61995489c19Sopenharmony_ci * returns <b>false</b> if device is not discovering. 62095489c19Sopenharmony_ci * @since 6 62195489c19Sopenharmony_ci */ 62295489c19Sopenharmony_ci int IsBtDiscovering(bool &isDisCovering, int transport = BT_TRANSPORT_BREDR) const; 62395489c19Sopenharmony_ci 62495489c19Sopenharmony_ci /** 62595489c19Sopenharmony_ci * @brief Get device discovery end time. 62695489c19Sopenharmony_ci * 62795489c19Sopenharmony_ci * @return Returns device discovery end time. 62895489c19Sopenharmony_ci * @since 6 62995489c19Sopenharmony_ci */ 63095489c19Sopenharmony_ci long GetBtDiscoveryEndMillis() const; 63195489c19Sopenharmony_ci 63295489c19Sopenharmony_ci /** 63395489c19Sopenharmony_ci * @brief Get paired devices. 63495489c19Sopenharmony_ci * 63595489c19Sopenharmony_ci * @param transport Adapter transport. 63695489c19Sopenharmony_ci * @return Returns paired devices vector. 63795489c19Sopenharmony_ci * @since 6 63895489c19Sopenharmony_ci */ 63995489c19Sopenharmony_ci int32_t GetPairedDevices(int transport, std::vector<BluetoothRemoteDevice> &pairedDevices) const; 64095489c19Sopenharmony_ci 64195489c19Sopenharmony_ci /** 64295489c19Sopenharmony_ci * @brief Remove pair. 64395489c19Sopenharmony_ci * 64495489c19Sopenharmony_ci * @param device Remote device address. 64595489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 64695489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 64795489c19Sopenharmony_ci * @since 6 64895489c19Sopenharmony_ci */ 64995489c19Sopenharmony_ci int32_t RemovePair(const BluetoothRemoteDevice &device); 65095489c19Sopenharmony_ci 65195489c19Sopenharmony_ci /** 65295489c19Sopenharmony_ci * @brief Remove all pairs. 65395489c19Sopenharmony_ci * 65495489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 65595489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 65695489c19Sopenharmony_ci * @since 6 65795489c19Sopenharmony_ci */ 65895489c19Sopenharmony_ci bool RemoveAllPairs(); 65995489c19Sopenharmony_ci 66095489c19Sopenharmony_ci /** 66195489c19Sopenharmony_ci * @brief Check if bluetooth address is valid. 66295489c19Sopenharmony_ci * 66395489c19Sopenharmony_ci * @param addr Bluetooth address. 66495489c19Sopenharmony_ci * @return Returns <b>true</b> if bluetooth address is valid; 66595489c19Sopenharmony_ci * returns <b>false</b> if bluetooth address is not valid. 66695489c19Sopenharmony_ci * @since 6 66795489c19Sopenharmony_ci */ 66895489c19Sopenharmony_ci static bool IsValidBluetoothAddr(const std::string &addr); 66995489c19Sopenharmony_ci 67095489c19Sopenharmony_ci /** 67195489c19Sopenharmony_ci * @brief Register remote device observer. 67295489c19Sopenharmony_ci * 67395489c19Sopenharmony_ci * @param observer Class BluetoothRemoteDeviceObserver pointer to register observer. 67495489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 67595489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 67695489c19Sopenharmony_ci * @since 6 67795489c19Sopenharmony_ci */ 67895489c19Sopenharmony_ci void RegisterRemoteDeviceObserver(std::shared_ptr<BluetoothRemoteDeviceObserver> observer); 67995489c19Sopenharmony_ci 68095489c19Sopenharmony_ci /** 68195489c19Sopenharmony_ci * @brief Deregister remote device observer. 68295489c19Sopenharmony_ci * 68395489c19Sopenharmony_ci * @param observer Class BluetoothRemoteDeviceObserver pointer to deregister observer. 68495489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 68595489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 68695489c19Sopenharmony_ci * @since 6 68795489c19Sopenharmony_ci */ 68895489c19Sopenharmony_ci void DeregisterRemoteDeviceObserver(std::shared_ptr<BluetoothRemoteDeviceObserver> observer); 68995489c19Sopenharmony_ci 69095489c19Sopenharmony_ci /** 69195489c19Sopenharmony_ci * @brief Get max advertising data length. 69295489c19Sopenharmony_ci * 69395489c19Sopenharmony_ci * @return Returns max advertising data length. 69495489c19Sopenharmony_ci * @since 6 69595489c19Sopenharmony_ci */ 69695489c19Sopenharmony_ci int GetBleMaxAdvertisingDataLength() const; 69795489c19Sopenharmony_ci 69895489c19Sopenharmony_ci void LoadSystemAbilitySuccess(const sptr<IRemoteObject> &remoteObject); 69995489c19Sopenharmony_ci 70095489c19Sopenharmony_ci void LoadSystemAbilityFail(); 70195489c19Sopenharmony_ci 70295489c19Sopenharmony_ci void OnRemoveBluetoothSystemAbility(); 70395489c19Sopenharmony_ci 70495489c19Sopenharmony_ci /** 70595489c19Sopenharmony_ci * @brief Get local profile uuids. 70695489c19Sopenharmony_ci * 70795489c19Sopenharmony_ci * @return Returns local profile uuids. 70895489c19Sopenharmony_ci * @since 10 70995489c19Sopenharmony_ci */ 71095489c19Sopenharmony_ci int32_t GetLocalProfileUuids(std::vector<std::string> &uuids); 71195489c19Sopenharmony_ci 71295489c19Sopenharmony_ci /** 71395489c19Sopenharmony_ci * @brief Set fast scan enable or disable. 71495489c19Sopenharmony_ci * @param isEnable set fast scan status flag. 71595489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 71695489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 71795489c19Sopenharmony_ci */ 71895489c19Sopenharmony_ci int SetFastScan(bool isEnable); 71995489c19Sopenharmony_ci 72095489c19Sopenharmony_ci /** 72195489c19Sopenharmony_ci * @brief Get the random address of a device. 72295489c19Sopenharmony_ci * If the address carried in the bluetooth interface is not obtained from the bluetooth, 72395489c19Sopenharmony_ci * the interface needs to be used for address translation. 72495489c19Sopenharmony_ci * @param realAddr real address. 72595489c19Sopenharmony_ci * @param[out] randomAddr random address. 72695489c19Sopenharmony_ci * @return Returns {@link BT_NO_ERROR} if get random address success; 72795489c19Sopenharmony_ci * returns an error code defined in {@link BtErrCode} otherwise. 72895489c19Sopenharmony_ci */ 72995489c19Sopenharmony_ci int GetRandomAddress(const std::string &realAddr, std::string &randomAddr) const; 73095489c19Sopenharmony_ci 73195489c19Sopenharmony_ci /** 73295489c19Sopenharmony_ci * @brief Connects all allowed bluetooth profiles between the local and remote device. 73395489c19Sopenharmony_ci * 73495489c19Sopenharmony_ci * @param remoteAddr remote device addr. 73595489c19Sopenharmony_ci * @return Returns {@link BT_NO_ERROR} if the operation is successful; 73695489c19Sopenharmony_ci * returns an error code defined in {@link BtErrCode} otherwise. 73795489c19Sopenharmony_ci * @since 11 73895489c19Sopenharmony_ci */ 73995489c19Sopenharmony_ci int ConnectAllowedProfiles(const std::string &remoteAddr) const; 74095489c19Sopenharmony_ci 74195489c19Sopenharmony_ci /** 74295489c19Sopenharmony_ci * @brief Disconnects all allowed bluetooth profiles between the local and remote device. 74395489c19Sopenharmony_ci * 74495489c19Sopenharmony_ci * @param remoteAddr remote device addr. 74595489c19Sopenharmony_ci * @return Returns {@link BT_NO_ERROR} if the operation is successful; 74695489c19Sopenharmony_ci * returns an error code defined in {@link BtErrCode} otherwise. 74795489c19Sopenharmony_ci * @since 11 74895489c19Sopenharmony_ci */ 74995489c19Sopenharmony_ci int DisconnectAllowedProfiles(const std::string &remoteAddr) const; 75095489c19Sopenharmony_ci 75195489c19Sopenharmony_ci /** 75295489c19Sopenharmony_ci * @brief Restrict Bluetooth BR/EDR ability, just BLE ability available. 75395489c19Sopenharmony_ci * 75495489c19Sopenharmony_ci * @return Returns {@link BT_NO_ERROR} if the operation is successful; 75595489c19Sopenharmony_ci * returns an error code defined in {@link BtErrCode} otherwise. 75695489c19Sopenharmony_ci * @since 12 75795489c19Sopenharmony_ci */ 75895489c19Sopenharmony_ci int RestrictBluetooth(); 75995489c19Sopenharmony_ci /** 76095489c19Sopenharmony_ci * @brief update virtual device 76195489c19Sopenharmony_ci * 76295489c19Sopenharmony_ci * @param action add or delete virtual device. 76395489c19Sopenharmony_ci * @param device device need to be operator. 76495489c19Sopenharmony_ci * @since 12 76595489c19Sopenharmony_ci */ 76695489c19Sopenharmony_ci void UpdateVirtualDevice(int32_t action, const std::string &address); 76795489c19Sopenharmony_ci 76895489c19Sopenharmony_ci /** 76995489c19Sopenharmony_ci * @brief Restrict Bluetooth BR/EDR ability, just BLE ability available. 77095489c19Sopenharmony_ci * 77195489c19Sopenharmony_ci * @param type satellite control type. 77295489c19Sopenharmony_ci * @param state satellite state. 77395489c19Sopenharmony_ci * @return Returns {@link BT_NO_ERROR} if the operation is successful; 77495489c19Sopenharmony_ci * returns an error code defined in {@link BtErrCode} otherwise. 77595489c19Sopenharmony_ci * @since 12 77695489c19Sopenharmony_ci */ 77795489c19Sopenharmony_ci int SatelliteControl(int type, int state); 77895489c19Sopenharmony_ci 77995489c19Sopenharmony_ci /** 78095489c19Sopenharmony_ci * @brief Register bluetooth resource manager observer. 78195489c19Sopenharmony_ci * 78295489c19Sopenharmony_ci * @param observer Class RegisterBtResourceManagerObserver pointer to register observer. 78395489c19Sopenharmony_ci * @since 12 78495489c19Sopenharmony_ci */ 78595489c19Sopenharmony_ci void RegisterBtResourceManagerObserver(std::shared_ptr<BluetoothResourceManagerObserver> observer); 78695489c19Sopenharmony_ci 78795489c19Sopenharmony_ci /** 78895489c19Sopenharmony_ci * @brief Deregister bluetooth resource manager observer. 78995489c19Sopenharmony_ci * 79095489c19Sopenharmony_ci * @param observer Class RegisterBtResourceManagerObserver pointer to deregister observer. 79195489c19Sopenharmony_ci * @since 12 79295489c19Sopenharmony_ci */ 79395489c19Sopenharmony_ci void DeregisterBtResourceManagerObserver(std::shared_ptr<BluetoothResourceManagerObserver> observer); 79495489c19Sopenharmony_ci 79595489c19Sopenharmony_ci /** 79695489c19Sopenharmony_ci * @brief Set local adapter scan level. 79795489c19Sopenharmony_ci * 79895489c19Sopenharmony_ci * @param level Scan level. 79995489c19Sopenharmony_ci * @return Returns <b>true</b> if the operation is successful; 80095489c19Sopenharmony_ci * returns <b>false</b> if the operation fails. 80195489c19Sopenharmony_ci * @since 12 80295489c19Sopenharmony_ci */ 80395489c19Sopenharmony_ci int SetFastScanLevel(int level); 80495489c19Sopenharmony_ci 80595489c19Sopenharmony_ci /** 80695489c19Sopenharmony_ci * @brief Close the bluetooth host to release resources, only called before the process exits. 80795489c19Sopenharmony_ci * 80895489c19Sopenharmony_ci * @since 13 80995489c19Sopenharmony_ci */ 81095489c19Sopenharmony_ci void Close(void); 81195489c19Sopenharmony_ciprivate: 81295489c19Sopenharmony_ci /** 81395489c19Sopenharmony_ci * @brief A constructor used to create a <b>BluetoothHost</b> instance. 81495489c19Sopenharmony_ci * 81595489c19Sopenharmony_ci * @since 6 81695489c19Sopenharmony_ci */ 81795489c19Sopenharmony_ci BluetoothHost(); 81895489c19Sopenharmony_ci 81995489c19Sopenharmony_ci /** 82095489c19Sopenharmony_ci * @brief A destructor used to delete the <b>BluetoothHost</b> instance. 82195489c19Sopenharmony_ci * 82295489c19Sopenharmony_ci * @since 6 82395489c19Sopenharmony_ci */ 82495489c19Sopenharmony_ci ~BluetoothHost(); 82595489c19Sopenharmony_ci 82695489c19Sopenharmony_ci /** 82795489c19Sopenharmony_ci * @brief Check whether bluetooth is prohibited by EDM. 82895489c19Sopenharmony_ci * 82995489c19Sopenharmony_ci * @return Returns <b>true</b> if bluetooth is prohibited, returns <b>false</b> otherwise. 83095489c19Sopenharmony_ci * @since 11 83195489c19Sopenharmony_ci */ 83295489c19Sopenharmony_ci bool IsBtProhibitedByEdm(void); 83395489c19Sopenharmony_ci 83495489c19Sopenharmony_ci BLUETOOTH_DISALLOW_COPY_AND_ASSIGN(BluetoothHost); 83595489c19Sopenharmony_ci BLUETOOTH_DECLARE_IMPL(); 83695489c19Sopenharmony_ci 83795489c19Sopenharmony_ci#ifdef DTFUZZ_TEST 83895489c19Sopenharmony_ci friend class BluetoothNoDestructor<BluetoothHost>; 83995489c19Sopenharmony_ci#endif 84095489c19Sopenharmony_ci}; 84195489c19Sopenharmony_ci} // namespace Bluetooth 84295489c19Sopenharmony_ci} // namespace OHOS 84395489c19Sopenharmony_ci 84495489c19Sopenharmony_ci#endif // BLUETOOTH_HOST_H 845