Permit adjusting of advertisement data

Prior to this change subsequent calls to
QLowEnergyController::startAdvertising() failed to update the
to-be-advertised information.

Fixes: QTBUG-70754
Change-Id: I594f4f916307e12be6be17d50497aea324520620
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
Alex Blasche 2018-10-05 13:44:26 +02:00
parent 54f9fe2c23
commit 35a97ca4b4
2 changed files with 7 additions and 3 deletions

View File

@ -73,13 +73,14 @@ public:
signals:
void errorOccurred();
protected:
public:
QLeAdvertiser(const QLowEnergyAdvertisingParameters &params,
const QLowEnergyAdvertisingData &advData,
const QLowEnergyAdvertisingData &responseData, QObject *parent)
: QObject(parent), m_params(params), m_advData(advData), m_responseData(responseData) {}
virtual ~QLeAdvertiser() { }
protected:
const QLowEnergyAdvertisingParameters &parameters() const { return m_params; }
const QLowEnergyAdvertisingData &advertisingData() const { return m_advData; }
const QLowEnergyAdvertisingData &scanResponseData() const { return m_responseData; }
@ -106,7 +107,7 @@ public:
const QLowEnergyAdvertisingData &advertisingData,
const QLowEnergyAdvertisingData &scanResponseData, HciManager &hciManager,
QObject *parent = nullptr);
~QLeAdvertiserBluez();
~QLeAdvertiserBluez() override;
private:
void doStartAdvertising() override;

View File

@ -810,8 +810,11 @@ void QLowEnergyControllerPrivateBluez::resetController()
if (role == QLowEnergyController::PeripheralRole) {
// public API behavior requires stop of advertisement
if (advertiser)
if (advertiser) {
advertiser->stopAdvertising();
delete advertiser;
advertiser = nullptr;
}
localAttributes.clear();
}
}