| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QBluetoothServiceDiscoveryAgent::start(FullDiscovery) uses an external
tool called sdpscanner to perform the SDP inquiry. The tool uses Bluez's
own API to perform the task and is GPL.
In case a remote device offers a custom service the service uuid is returned
as serviceClassUuid. QBluetoothServiceInfo::serviceUuid() remains empty
although it should be populated as per API contract. This patch ensures
that the first custom uuid is shifted from the serviceClassUuid list to
serviceUuid(). The fix is limited because it picks the first custom uuid
and does not consider a secondary custom uuid. Such a case is extremely
unlikely though and I have not come across it.
Fixes: QTBUG-72800
Change-Id: I7256440bcb1c9b0b2fb75249f977c43fecf1d910
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
| |
The related bug only happens for custom uuids.
Fixes: QTBUG-72681
Change-Id: I22d87b84bf3958ecce9b6020e3323f1e6c6a9255
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt DBus registration for Bluez specific types was done by isBluez5().
However Qt 5.12 introduced bluetoothdVersion() which is a bit more
precise. It became necessary because runtime decisions based on exact
minor release versions of Bluez became necessary. Therefore some code
paths (depending on the user's use case) never called isBluez5() anymore.
Subsequently the dbus registrations were missed out on.
In the future isBLuez5() should be replaced by bluetoothdVersion().
QBluetoothSocket changed its underlying implementation when addressing
QTBUG-68550. It uses dbus sockets to establish rfcomm socket connections
to remote devices. The QBluetoothSocket::connectToService() overload that
expects a port number is no longer possible as Bluez DBus API does not
support connection establishment based on port numbers.
Fixes: QTBUG-72742
Change-Id: If6adb391b0524cabc3a702d761e0cbd263508396
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
| |
Move all i-vars into implementation part of declaration.
Change-Id: I9ee71bc85308d899871dc680d438c504e591b091
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to do several things (for example, discovering chars on
several services) in non-sequential manner is allowed but will
result in the broken 'object under watch' logic and thus a
failure to report some operation finished.
Task-number: QTBUG-72487
Change-Id: I9674f93e0c4d5cbfd50ac2f828d0d650031e056c
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
1. We move the logic 'object we are watching after and the query's type'
into the GCD timer, since we'll need several timers in osxbtcentralmanager
(and after all it's not a timer really, it's 'a timeout watchdog' more like.
2. Move i-vars into the implementation to suppress compiler warnings.
Task-number: QTBUG-72487
Change-Id: I090e4cc2e0e747211aae8ec91c4e0ff4a53f570b
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
Found by ICC:
warning #68: integer conversion resulted in a change of sign
Change-Id: I4ac1156702324f0fb814fffd156f81e163e3d4d2
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Using a Q_GLOBAL_STATIC here fixes an issue in the auto tests for winrt.
If we use a static object that is created before the QCoreapplication has
been created, TagActivator's timer will complain, that it was not created
inside a QThread.
By postponing the creation until first usage we can avoid that problem.
Change-Id: I9beca89930bfca2c71e0fce3d9c000dfcb71f431
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
We have to add relevant test data to TESTDATA and use them from the
created qrc file.
Change-Id: I72ed86e09caf518f3f1b830ab4fec104a81313e6
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
| |
This patch updates the QQmlNdefRecord code to use
QRegularExpression in place of QRegExp which is to be considered
deprecated.
Change-Id: Ibfbab39ca84f9e89d6f6bd2e15000359a4218234
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
| |
GCC 4.8 doesn't like duplicate friend declarations.
Change-Id: I2ec48ca7415b9fd7fe1c24f390519833b7d1f0aa
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
And continue to update device info when continuous scanning (lowEnergyDiscoveryTimeout <= 0).
Task-number: QTBUG-46008
Change-Id: I019c540205ae39c60deac165def7d0da572ae291
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
Remove unnecessary break and correct one of bufferFromAttribute's
return values.
Change-Id: I6d4d74318f2eee1ed89f2e2f95909978fd8b4733
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I355f7b5d83b925af785a35ca27cc0943f346665e
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
Prebuilt packages do not use the newer BTLE backend so by default BT
devices have to be paired before they can be found on Windows.
Change-Id: I128b319b95c49ec8eab4a221927712bae5253327
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backends that still use qbluetoothlocaldevce_p.cpp (namely ios and winrt)
overload QBluetoothLocalDevicePrivate::isValid. While it does not make a
difference for ios (as false is returned if no d_ptr is initialized) local
device will be seen as invalid on winrt if there is no d_ptr.
Fixes: QTBUG-67090
Change-Id: I82dfa4563be0ed4800f0a8dd2a9ccfc3fe313e3b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
If the public class is deleted pending lambda invocation can cause
crashes unless QObject context is provided. This fixes a regression
introduced by 819bb06c2cb3372cb1bb9ddd7f3a504f78d3452d.
This was discovered while investigating QTBUG-71479.
Change-Id: I3a49916ce6d9425c684863bb0b04a10bd3e652b9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression introduced by
819bb06c2cb3372cb1bb9ddd7f3a504f78d3452d.
The object context was missing and subsequent calls to QObject::sender()
failed. As a consequence the signalling for the device updates never
happened.
Fixes: QTBUG-71479
Change-Id: I6f057912a9321969b59ded8b0a3e5602653e5f2e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
The previous definition was not aware of the new deviceUpdated() signal.
This patch better outlines the connection.
Change-Id: I8beee9b43c5c0b782676de61b27b219b32c245f5
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
| |
Don't depend on QUuid's.
Change-Id: I495bc19409f348069f5bfffd15516db994a430e4
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
A BrowseGroupList is defined as sequence in which each element is a UUID
that represents a browse group to which the service record belongs.
Except for the QBluetoothServer::listen() implementation every other
implementation did not use the sequence pattern. This patch unifies
all BrowseGroupList entries through QtBluetooth and its examples/tests.
Change-Id: I37640ae0500c557d79350359883abc6a66a46346
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
As per spec this is meant to be a list/sequence within a sequence and
the version was missing too. For simplicity version 1.0 is used.
Fixes: QTBUG-58529
Change-Id: I57090148aadf60ea1fbbb207ff0a4ae61e06caf2
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We previously failed to correctly extract service ID and service
class ID list. As a result, service discovery agent working with
uuid filter and in MinimalDiscovery mode would fail to find anything,
without filtering - would probably end up in services not having
any valid service ID or ID list.
Task-number: QTBUG-71052
Change-Id: I6b5a36399abfaf66297abe4a38efa7659cbb2aa0
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
| |
This fixes a regression introduced by 819bb06c2cb3372cb1bb9ddd7f3a504f78d3452d
on macOS.
Fixes: QTBUG-71032
Change-Id: I34a0325f89049bce86b5137ee722f6f063a4b882
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Fixes: QTBUG-70799
Change-Id: Iebbfbc2e00d83a6c08bb8a376c01734188e69388
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QDoc now supports macros for its command parameters, as well as passing
parameters to \code and \qml commands. Use these together with the
new \QtMinorVersion macro to automate bumping the QML import versions
within documentation.
Also, update the hard-coded version numbers in snippet files where we
cannot use the macro.
Task-number: QTBUG-67818
Change-Id: I93d92770314580efa933c5bf85c618ad8331afb5
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
If a device has to be paired during device discovery on winrt it is
possible that the pairing dialog is shown, while discovery hits its
timeout. We have to protect against a late callback which tries to access
a deleted object.
Change-Id: I9756f993b4a31080b1ef518953bee6e75a24e315
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I22da03879c23f6b6842cb832cea0cfee6e016445
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The device address is essential for proper processing of
pairingDisplayConfirmation() signal on Android. If it is not available
abort immediately. This brings the passkey pairing code in line with
pincode pairing.
Change-Id: I174a2478d48463c58ba937e71ced377d45892f1a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Most likely this paring variant was forgotten when Android support
for QBluetoothLocalDevice was implemented. This variant is rather uncommon
and Android's default pairing handler are likely to automatically
handle such requests too.
Fixes: QTBUG-70295
Change-Id: I618242da415574245e5a213a6e34f190c685c8e9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QBluetoothLocalDevice::pairingConfirmation(bool) requires
BLUETOOTH_PRIVILEGED permission which cannot be obtained by 3rdparty
apps. I believe this used to be different as suggested by
https://android.googlesource.com/platform/frameworks/base/+/b1dc1757071ba46ee653d68f331486e86778b8e4
This patch ensures that the thrown SecurityException is caught and displays
an appropriate warning.
Change-Id: Ib5a0e0fc0c9f3b4f33690493ed74aa4b7cb8864b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-70264
Change-Id: I23d3be2fa247a7c12ead7f7a8e599a3869b44e09
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I49653a6ac6fa004987d32365f96a6407f50e207c
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
| |
This was caused by mindless copy & paste.
Change-Id: I129a5f52753e7aa825cf7f6337b5f24644d9b9a0
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
| |
Change-Id: I4f33ec95b2af858b8d0c3ff60882b550a91563df
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since BlueZ 5.48 battery services are no longer
exposed via the generic GATT interface but have their own
dedicated Battery1 interface. This patch transforms the
dedicated interface back into the previous behavior.
Essentially we are emulating the old interface to
ensure that the QLowEnergyService user does not have to
distinguish.
Fixes: QTBUG-70222
Change-Id: Ib9fef41cf16f7562f169f51ee45b19f52de6a0c0
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I8a30d5d12fad73a714159ebe3e1d54e8c0b3e407
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|\
| |
| |
| | |
Change-Id: I576079e30f4075117ca764f45198bc1e5269d887
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-70162
Change-Id: I4556cbf1965121b042a55e3e36e24383f8fa8dc9
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Remove unused section "C++ Tutorial".
Change-Id: I55ba7286c00ae4573d97f6244dff1f589634b949
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: If7adc165e063445ee0c34291a3e3840ddae0f570
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
and invalidate the state once they have been disconnected. This affects
Android, Bluez and Apple code lines.
Change-Id: I2b87577930b6ae78e7ef7ef061e597beba946594
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
LEController in peripheral mode uses QBluetoothSocket::setSocketDescriptor().
Since QBluetoothsocket was ported to DBus (enabled when Bluez is 5.46 or later)
setSocketDescriptor()/server mode does not work. That's why
f602d7fef2e2f067e123e5740d4b0bf16c4ec0e2 made sure that QBluetoothServer
uses the old raw socket implementation. Unfortunately QLowEnergyController
was forgotten and needs the same workaround.
Change-Id: I6ba3654ee199d0ffcf4b69f16dfbc5508d6b13d4
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some cases use the Q_PRIVATE_SLOT logic which does not require QObject
inheritance. Those cases were converted to lambda logic to avoid need for
QObject inheritance.
The Q_PRIVATE_SLOT macro was removed from qbluetoothdevicediscoveryagent.h.
This is not a BC problem because the macro expands to nothing. Only
moc recognizes the pattern.
Change-Id: Ic7cb4cde397f9b230b6fd0b4046e59e504583e58
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Android internals seem to require it. All other existing test related
registrations are removed as they are obsolete after this patch.
Change-Id: I49aa3b79bdc8ca5f463f4f7a88cbb612db39d15e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I7dd2d055c8d667f049d7cb2c371619137bf76030
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For iBeacons and such, it's normal to keep discovering indefinitely,
while the advertisement can sometimes carry changing payload data.
This signal helps keep the UI up-to-date.
Changed setManufacturerData to return a bool indicating whether the
data was really modified or not, to avoid sending deviceUpdated
in case it was not changed.
For convenience QBluetoothDeviceInfo::manufacturerData() was added.
WinRT and Apple platforms do not emit the new signal yet and relevant
TODO items were added.
Done-with: Shawn Rutledge <shawn.rutledge@qt.io>
Task-number: QTBUG-46008
Task-number: QTBUG-69747
Change-Id: I6d6b373f6cc5ee3dd6af2ad05d8640dbd25c5d6a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Amends 0f930cddefe386c6b6f65b8b11342c9e76876a9b
Change-Id: Ic3769d30198d3607a1fee218d9f2e90b9addf2d3
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
QLowEnergyController::createCentral() is the official API to do the same.
Change-Id: Idbd26d201b24add6697f6f9cdf1194511c160273
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|