From 97a26a14ac21d35f89b03f36099d6943f5f7da8e Mon Sep 17 00:00:00 2001 From: linzlinz <2495670683@qq.com> Date: Tue, 1 Apr 2025 15:11:24 +0800 Subject: [PATCH 1/2] ble advertising handle Signed-off-by: huwenjie --- .../inner/ipc/include/bluetooth_ble_advertiser_proxy.h | 2 +- .../inner/ipc/interface/i_bluetooth_ble_advertiser.h | 2 +- .../inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp | 7 ++++++- frameworks/inner/src/bluetooth_ble_advertiser.cpp | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h b/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h index 96a397ab..6e56e32f 100644 --- a/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h +++ b/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h @@ -36,7 +36,7 @@ public: int DisableAdvertising(uint8_t advHandle) override; int StopAdvertising(int32_t advHandle) override; void Close(int32_t advHandle) override; - int32_t GetAdvertiserHandle(int32_t &advHandle) override; + int32_t GetAdvertiserHandle(int32_t &advHandle, const sptr &callback) override; void SetAdvertisingData(const BluetoothBleAdvertiserData &advData, const BluetoothBleAdvertiserData &scanResponse, int32_t advHandle) override; int ChangeAdvertisingParams(uint8_t advHandle, const BluetoothBleAdvertiserSettings &settings) override; diff --git a/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h b/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h index 8185ec2f..d8a62673 100644 --- a/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h +++ b/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h @@ -39,7 +39,7 @@ public: virtual int DisableAdvertising(uint8_t advHandle) = 0; virtual int StopAdvertising(int32_t advHandle) = 0; virtual void Close(int32_t advHandle) = 0; - virtual int32_t GetAdvertiserHandle(int32_t &advHandle) = 0; + virtual int32_t GetAdvertiserHandle(int32_t &advHandle, const sptr &callback) = 0; virtual void SetAdvertisingData(const BluetoothBleAdvertiserData &advData, const BluetoothBleAdvertiserData &scanResponse, int32_t advHandle) = 0; virtual int ChangeAdvertisingParams(uint8_t advHandle, const BluetoothBleAdvertiserSettings &settings) = 0; diff --git a/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp b/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp index b9654c7e..94ff3853 100644 --- a/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp +++ b/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp @@ -216,13 +216,18 @@ void BluetoothBleAdvertiserProxy::Close(int32_t advHandle) } } -int32_t BluetoothBleAdvertiserProxy::GetAdvertiserHandle(int32_t &advHandle) +int32_t BluetoothBleAdvertiserProxy::GetAdvertiserHandle(int32_t &advHandle, + const sptr &callback) { MessageParcel data; if (!data.WriteInterfaceToken(BluetoothBleAdvertiserProxy::GetDescriptor())) { HILOGW("[GetAdvertiserHandle] fail: write interface token failed."); return BT_ERR_INTERNAL_ERROR; } + if (!data.WriteRemoteObject(callback->AsObject())) { + HILOGW("[GetAdvertiserHandle] fail: write callback failed."); + return BT_ERR_INTERNAL_ERROR; + } MessageParcel reply; MessageOption option = {MessageOption::TF_SYNC}; diff --git a/frameworks/inner/src/bluetooth_ble_advertiser.cpp b/frameworks/inner/src/bluetooth_ble_advertiser.cpp index d3bba56e..91805659 100644 --- a/frameworks/inner/src/bluetooth_ble_advertiser.cpp +++ b/frameworks/inner/src/bluetooth_ble_advertiser.cpp @@ -365,7 +365,7 @@ int BleAdvertiser::StartAdvertising(const BleAdvertiserSettings &settings, const if (pimpl->callbacks_.IsExistAdvertiserCallback(callback, advHandle)) { ret = proxy->StartAdvertising(setting, bleAdvertiserData, bleScanResponse, advHandle, duration, false); } else { - ret = proxy->GetAdvertiserHandle(advHandle); + ret = proxy->GetAdvertiserHandle(advHandle, pimpl->callbackImp_); if (ret != BT_NO_ERROR || advHandle == BLE_INVALID_ADVERTISING_HANDLE) { HILOGE("Invalid advertising handle"); callback->OnStartResultEvent(BT_ERR_INTERNAL_ERROR, static_cast(BLE_INVALID_ADVERTISING_HANDLE)); @@ -413,7 +413,7 @@ int BleAdvertiser::StartAdvertising(const BleAdvertiserSettings &settings, const if (pimpl->callbacks_.IsExistAdvertiserCallback(callback, advHandle)) { ret = proxy->StartAdvertising(setting, bleAdvertiserData, bleScanResponse, advHandle, duration, true); } else { - ret = proxy->GetAdvertiserHandle(advHandle); + ret = proxy->GetAdvertiserHandle(advHandle, pimpl->callbackImp_); if (ret != BT_NO_ERROR || advHandle == BLE_INVALID_ADVERTISING_HANDLE) { HILOGE("Invalid advertising handle"); callback->OnStartResultEvent(BT_ERR_INTERNAL_ERROR, BLE_INVALID_ADVERTISING_HANDLE); -- Gitee From 9d522154b0b03f63b457296f52e40d631e5d068a Mon Sep 17 00:00:00 2001 From: huwenjie Date: Thu, 10 Apr 2025 06:17:29 +0000 Subject: [PATCH 2/2] Revert "ble advertising handle" This reverts commit 97a26a14ac21d35f89b03f36099d6943f5f7da8e. --- .../inner/ipc/include/bluetooth_ble_advertiser_proxy.h | 2 +- .../inner/ipc/interface/i_bluetooth_ble_advertiser.h | 2 +- .../inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp | 7 +------ frameworks/inner/src/bluetooth_ble_advertiser.cpp | 4 ++-- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h b/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h index 6e56e32f..96a397ab 100644 --- a/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h +++ b/frameworks/inner/ipc/include/bluetooth_ble_advertiser_proxy.h @@ -36,7 +36,7 @@ public: int DisableAdvertising(uint8_t advHandle) override; int StopAdvertising(int32_t advHandle) override; void Close(int32_t advHandle) override; - int32_t GetAdvertiserHandle(int32_t &advHandle, const sptr &callback) override; + int32_t GetAdvertiserHandle(int32_t &advHandle) override; void SetAdvertisingData(const BluetoothBleAdvertiserData &advData, const BluetoothBleAdvertiserData &scanResponse, int32_t advHandle) override; int ChangeAdvertisingParams(uint8_t advHandle, const BluetoothBleAdvertiserSettings &settings) override; diff --git a/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h b/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h index d8a62673..8185ec2f 100644 --- a/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h +++ b/frameworks/inner/ipc/interface/i_bluetooth_ble_advertiser.h @@ -39,7 +39,7 @@ public: virtual int DisableAdvertising(uint8_t advHandle) = 0; virtual int StopAdvertising(int32_t advHandle) = 0; virtual void Close(int32_t advHandle) = 0; - virtual int32_t GetAdvertiserHandle(int32_t &advHandle, const sptr &callback) = 0; + virtual int32_t GetAdvertiserHandle(int32_t &advHandle) = 0; virtual void SetAdvertisingData(const BluetoothBleAdvertiserData &advData, const BluetoothBleAdvertiserData &scanResponse, int32_t advHandle) = 0; virtual int ChangeAdvertisingParams(uint8_t advHandle, const BluetoothBleAdvertiserSettings &settings) = 0; diff --git a/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp b/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp index 94ff3853..b9654c7e 100644 --- a/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp +++ b/frameworks/inner/ipc/src/bluetooth_ble_advertiser_proxy.cpp @@ -216,18 +216,13 @@ void BluetoothBleAdvertiserProxy::Close(int32_t advHandle) } } -int32_t BluetoothBleAdvertiserProxy::GetAdvertiserHandle(int32_t &advHandle, - const sptr &callback) +int32_t BluetoothBleAdvertiserProxy::GetAdvertiserHandle(int32_t &advHandle) { MessageParcel data; if (!data.WriteInterfaceToken(BluetoothBleAdvertiserProxy::GetDescriptor())) { HILOGW("[GetAdvertiserHandle] fail: write interface token failed."); return BT_ERR_INTERNAL_ERROR; } - if (!data.WriteRemoteObject(callback->AsObject())) { - HILOGW("[GetAdvertiserHandle] fail: write callback failed."); - return BT_ERR_INTERNAL_ERROR; - } MessageParcel reply; MessageOption option = {MessageOption::TF_SYNC}; diff --git a/frameworks/inner/src/bluetooth_ble_advertiser.cpp b/frameworks/inner/src/bluetooth_ble_advertiser.cpp index 91805659..d3bba56e 100644 --- a/frameworks/inner/src/bluetooth_ble_advertiser.cpp +++ b/frameworks/inner/src/bluetooth_ble_advertiser.cpp @@ -365,7 +365,7 @@ int BleAdvertiser::StartAdvertising(const BleAdvertiserSettings &settings, const if (pimpl->callbacks_.IsExistAdvertiserCallback(callback, advHandle)) { ret = proxy->StartAdvertising(setting, bleAdvertiserData, bleScanResponse, advHandle, duration, false); } else { - ret = proxy->GetAdvertiserHandle(advHandle, pimpl->callbackImp_); + ret = proxy->GetAdvertiserHandle(advHandle); if (ret != BT_NO_ERROR || advHandle == BLE_INVALID_ADVERTISING_HANDLE) { HILOGE("Invalid advertising handle"); callback->OnStartResultEvent(BT_ERR_INTERNAL_ERROR, static_cast(BLE_INVALID_ADVERTISING_HANDLE)); @@ -413,7 +413,7 @@ int BleAdvertiser::StartAdvertising(const BleAdvertiserSettings &settings, const if (pimpl->callbacks_.IsExistAdvertiserCallback(callback, advHandle)) { ret = proxy->StartAdvertising(setting, bleAdvertiserData, bleScanResponse, advHandle, duration, true); } else { - ret = proxy->GetAdvertiserHandle(advHandle, pimpl->callbackImp_); + ret = proxy->GetAdvertiserHandle(advHandle); if (ret != BT_NO_ERROR || advHandle == BLE_INVALID_ADVERTISING_HANDLE) { HILOGE("Invalid advertising handle"); callback->OnStartResultEvent(BT_ERR_INTERNAL_ERROR, BLE_INVALID_ADVERTISING_HANDLE); -- Gitee