| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I425584b677e21a4dadc7a080e33a79047720061c
|
|
|
|
| |
Change-Id: Ied09234db380d1b6ccf73d3690015b24f7ebecfd
|
|
|
|
|
|
|
| |
Change-Id: I72c9a06d15c3092b898fed708908896ea385034c
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
(cherry picked from commit 568c411f2751a97e9cc39f58adfa16f2465c4bae)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
| |
Change-Id: Iabf1c9131eccad2050e6489fefce67a6fa433973
|
|\
| |
| |
| | |
Change-Id: I97cf2576d21f3a17be4121c1ae87839b0d322451
|
|/
|
|
|
|
|
| |
+ 5444587cbac6328aad883c03747de448a32ae05c Bump version
Change-Id: Ida343a9fee7e5b8c93558e41ac1c9302bee6af5a
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
| |
Change-Id: If5108957740d7a313681e04fb08c826eb4126353
|
|\
| |
| |
| | |
Change-Id: I117ad77bf754b72884a1db935472352012a3b4fd
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ 02a4d36239aca65cd1ab93ec686deac05a0e918a Bump version
+ 5f6187cb9e17b55cd2a68ac3094ae6a1879b50a2 Add descriptor even if the read fails during service discovery
+ e851596c284bfa3ef5be1bb982cf8a57360baed9 Grant ACCESS_FINE_LOCATION to QtBluetooth
+ b4bd5c9852c1414cc45a551590fa485ade764c63 Add location-turned-on check before starting device discovery
+ 08fa2adc272ae58564601e92dc5d1459d8dc89ba Ensure that a failing classic discovery doesn't prevent LE scan
+ b4282fd32ea06c1d634ea322f682a4c939a0cc89 Also add a response for a request if reportError is called
+ 6c91ad8a7fe8adc555b57570486122f31f88d01b QLowEnergyControllerPrivateWinRT::connectToDevice: Return early if LE device cannot be found
Change-Id: I7c027b70797a6d13466ad1edac3a80abfda858b8
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
cannot be found
If the host does not support BTLE, connectToDevice will fail and mDevice
will be zero. The return in this case was missing so that we tried to
access a null pointer and caused an exception.
(cherry picked from commit 280cfd43012d1cfbfcd26fe57f633db3fc13a379)
Change-Id: I24ea52b0d62c6e789c794fed8d75087fea7277b8
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using QNearFieldTarget::sendCommand on Android an exception can
occur. In this case reportError is called and handleResponse is omitted.
A call to QNearFieldTarget::waitForRequestCompleted will result in
a full usage of the specified timeout, even if the exception occurred.
To avoid this behavior also add an (invalid) response in reportError.
Change-Id: Id80b7a97da5628d229b942803ec1a2fb13536d99
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
(cherry picked from commit 539fce5bf6bb5b1e3d599ea6e41354c80a79500f)
Reviewed-by: Lars Schmertmann <lars.schmertmann@governikus.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the classic scan does not start properly we immediately error out.
If the user has requested LE discovery in addition to the classic discovery,
we should continue with LE discovery.
By convention, we only bother the user with an error signal if none of the
two methods succeed.
Task-number: QTBUG-81875
Change-Id: Id867892210fbef6da0e4937c2aef20f726ba9a2a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit c81430b704e17d2f2eb5445e261ab3753bef3328)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The location permission and a running location service have
been a prerequisite for a successful LE scan since Android v23.
While the permission has always been checked before doing a bluetooth scan, the
state of the location service was not checked. LE discovery
without location turned on does not error out. It just reports zero
discoveries.
Starting with Android SDK v29, a classic Bluetooth discovery requires
a running Location service too. Due to BluetoothAdapater.startDiscovery()
returning an error code when location is turned off, it was time to
check the location service before triggering the discovery
to simplify the error handling for the API user.
This patch ensures that location is turned on before any type of device
discovery is started and the API reports an error reflecting this problem.
Task-number: QTBUG-81875
Change-Id: Id51fd502ae24cbadbc704451fdf49d999224c16f
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
(cherry picked from commit fd48361a193889cdc25af8aeb311acc8ad85fa26)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since Android 10(SDK v29+) all types of Bluetooth device discovery
require ACCESS_FINE_LOCATION. This is highlighted by
https://developer.android.com/about/versions/10/privacy/changes#location-telephony-bluetooth-wifi
Fixes: QTBUG-81875
Change-Id: Icaecca1f72a994dc774dc2b90194da15cc0787b0
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
(cherry picked from commit 0c8f3eb35eead6e4db7732020d7fb2863ba3787f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
leDescriptorRead() serves two pruposes. Firstly, it informs Qt of the
value/result of the read operation. During service discovery it is also
used to inform Qt that a descriptor was found. This info is used
to build up the internal data structure representing the service, its
characteristics and its descriptors.
If we have a non-readable descriptor the read failed (as expected)
and Qt was never informed about the existence of the descriptor. During
service discovery the primary purpose is to inform about the existence
of a descriptor though.
This patch ensures the notification comes through and we accept the fact
that the passed value is not known.
Fixes: QTBUG-78201
Change-Id: Id73a27c90905cb769f1cd168b48299d580587594
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 7390de230e3c86049824bef756e4af623a547d61)
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|\
| |
| |
| | |
Change-Id: I49c6b4479f0960210e0860a8162803a1bacaece3
|
| |
| |
| |
| |
| |
| |
| | |
+ 3a42ab68aae89bfcc9e70940e8bd909225672d93 Bump version
Change-Id: I587713e8241539b7c80042e12977e2b9c7f0bb9d
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|/ |
|
|\
| |
| |
| | |
Change-Id: Ibe8c996693bebffd77585308fbaa875de37e2d38
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ 04a94a42ae0e4ec645e909a6b005723bbd4d443d Fix classic device discovery on Android
+ 4705158564dfc20ebd81f8039b90c697256b3281 Fix classic device discovery on Android
+ b17ebbf92727ce365a1f49cd0cdfc559a7c6aa8f Bump version
Change-Id: I0c784be25ea168665d9e277321d1e8ce52774720
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems recent Android releases (at least confirmed for Android 9)
require location permission for classic device discovery. Previously,
it was only required for BTLE discovery.
This patch ensures the permission check is done for every type
of device discovery on Android.
Task-number: QTBUG-69615
Change-Id: I9596c083ecfd9b5e861c1aa5e9900bab5f44237f
(cherry picked from commit a22807beee00050ebf04f069cdf0ea4ab40ebbf9)
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It seems recent Android releases (at least confirmed for Android 9)
require location permission for classic device discovery. Previously,
it was only required for BTLE discovery.
This patch ensures the permission check is done for every type
of device discovery on Android.
Task-number: QTBUG-69615
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
(cherry picked from commit a22807beee00050ebf04f069cdf0ea4ab40ebbf9)
Change-Id: I4cc48aa659e38c89d956090b9fd995f346f01e7d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|\ |
|
| |\
|/ /
| |
| | |
Change-Id: I6d8c7763728702c3133ecf4c15fbfa7657eb5b21
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ 3394807b3b0a234452b76e6295cb2362dc2c0cc0 Bump version
+ 0fc7e18bf7a24c9408602242d51a852905dfd0da Core/IO/Bluetooth - fix ambiguous conversions
+ 8a6d9c307851f3492ddc597f5f03e80f236a7857 Fix compilation with C++20
+ 4ac755bb6e51891881b7477702be8ca917b60c8a winrt: Do not try to delete nullptr worker
+ 263fc5186325a7dd59a7533b98b3bf1296ea0d16 Do not handle PAIRING_VARIANT_PIN
+ 8110fdd4c6d80d05934768fa808a4cb187212fe0 Core/IO/Bluetooth - fix ambiguous conversions for macOS
+ c9d585da2ddd49108d7b56f480bcfc9d71b67dbf winrt: Add limitations to bluetooth overview page
+ 406b18fdb3704a9e9e66cefbc74e7cff55f1947c Fix QLEAdvertisingData::setManufacturerData on Android
Change-Id: Ib8bf9529e85e8f8c2f76c203120afb3d9ceca492
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
The manufacturer data was not properly set because the related Java
function requires a byte[] as second parameter. The equivelent JNI
type is [B and not [B]. This caused a crash of the application.
Change-Id: Iaa062ed9eb01e03d155583519d3f6a6bc01d72f7
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Same as on Android, Obex is not supported on winrt.
Even though QBluetoothServiceInfo has a small passage about winrt's
limitations when it comes to RFCOMM. Users might miss these limitations
as they are quite hidden. Make them more visible by also having them in
the overview.
Task-number: QTBUG-62520
Change-Id: Ibdf1a9b334b7138301e833981e67c7813488bbd1
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
| |
This is a sibling of QTBUG-76847 on macOS instead of iOS.
Change-Id: I3df6e28d65b9835f5f54e92d462d23423c48d835
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The user has to enter a pin in such cases. Since QBluetoothLocalDevice
does not have an API to return a pin it makes no sense for QtBluetooth
to handle this type of request. Android will provide its own fall back
form.
This patch is mostly a revert of f8c0572ddcd.
Fixes: QTBUG-76565
Task-number: QTBUG-70295
Change-Id: I61062ac84ce508f3b82c7359a60d5c9c5bba86a4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
When calling QBluetoothDeviceDiscoveryAgentPrivate::stop the worker
pointer is cleared in disconnectAndClearWorker so there is no need
to call deleteLater (which will just result in a warning).
Change-Id: I2713474833b61a12018ecfa6f9eb11618ed025a7
Task-number: QTBUG-75089
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
| |
Implicit capture of 'this' in [=] is deprecated in C++20.
Fix by using explicit capture.
Change-Id: I96132d83d87ae61986ba1b1ea3f9cf8e50059f1f
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
... somewhat prospective fix (I do not have the new iOS yet), so far build
never failed with my current SDK.
Fixes: QTBUG-76847
Change-Id: Iab75c3cd47144cd83b679b1dbf82339e29c07bd1
Reviewed-by: André Klitzing <aklitzing@gmail.com>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
| |
Change-Id: Ia7d6c7678e68e0ea5943d06fdfbb5a150a87c149
|
|\ |
|
| |\
|/ /
| |
| | |
Change-Id: I38bcbad1bc8d0f03ba0ee3aa09f8c3e867dd6bca
|
| |
| |
| |
| |
| | |
Change-Id: Icb632a9e34f7c507153291322edc6f5c008b7b21
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|/
|
|
| |
Change-Id: I48c1d05ac0c9b231f7f1e077f3096274fe07435f
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In fact there are two socket leaks. The first is the socket for the incoming
l2cp connection from the central device and the second one is allocated in the
ctor of QBluetoothSocket. When QBluetoothSocket::setSocketDescriptor is called
the previously ctor allocated socket was simply ignorred. This patch closes
both socket.
Fixes: QTBUG-75278
Change-Id: Ia483e3c2a04bec3a53ddf744c22b794941edf848
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
It is possible that the service will appear to be the same but have
different server channels. So these services should not be seen as
duplicates as a result.
Change-Id: I36f9c376fcfd9378f4f18c639e87e1a7aad1815b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|\
| |
| |
| | |
Change-Id: I963e91cc2547b4ceedcebd22c17149385c503575
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ 3f9ba9c07322d90f8f918d9e144e84d422e4cfbd Bluez-DBus: Fix crash at calling disconnect while not connected
+ a61ee48bc16fae61cabb9a242f3a7c19caa4cbfd LE/Android: add consistency check in method called from Qt API
+ 16f033fb13a3005eefbe8b7b6ccc52bfda08649e Address compile error on gcc 4.8
+ c488aedb42cda76085cfc0ed2602c34c3b5353a6 Bump version
+ 75648df8fa91fc0918285988e75ec996f0dc0f97 qlowenergycontroller_android_p.h: Remove unrelated preprocessor blocks
+ 043145014565dad540b416a0b369a7d04630e649 Update SensorTag documentation URL
+ 545b282d6d4a3c66e00c41ffd83c1a69f6fd0ad2 Ensure DBus based QBluetoothSocket emits bytesWritten() signal
+ d21da7829811d129b96ca0eb2a56cb6bdae4f1a7 Convert bttestui to Qt5 style connect() syntax
Change-Id: Ibbd7fed9375e8990882ab4d85c1875dcdb5b76c4
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With some peculiar device we suddenly (during the service details discovery)
got a crash with CBDescriptor suddenly becoming something else - NSString,
NSMutableArray etc. - meaning the object was deleted and its memory re-used.
It would appear, CBPeripheral can suddenly change it's services tree and
it informs its delegate (aka 'us') about this change using the (previously)
missing method. In this method we cannot do much, due to the specificity of our
public API that allows concurrent discoveries, it's 'non-monolitic' (in several
steps) discoveries etc. etc. So the only thing we can do - stop everything,
remove all services, transition to QLowEnergyController::ConnectedState and
wait for a user to re-discover services.
Fixes: QTBUG-75043
Change-Id: Ie98d90aea112e40b4c6771e3f7315772dfd92b39
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We have to access the service data instead of relying on passed
references as these references might have run out of scope and thus
might not be valid any more.
Fixes: QTBUG-75070
Change-Id: I02ad0fef2337488c926fb950ddf2da6eda56a396
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Sometimes Android returns a null uuid as SDP result. There is no point
processing them further.
Change-Id: I07b52e79a31becda72452e3446aca9ea4933968b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Even though it is not recommended to listen on reserverd BT UUIDs,
there are SPP services which do not advertise with a custom uuid
or the custom uuid is not an SPP service. In such cases we want a
BluetoothServiceInfo instance that advertises SPP as serviceUuid().
Change-Id: Ic54d663392f8f8b2ba5684c57216bf2b69aca477
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The changes are of cosmetic or code optimization nature. The functionality is
not changed at all.
Change-Id: Ideb63d87ed07201024b73e2f40d33393b68963bc
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
SDP discovery on Android only returns a flat list of uuids. It mixes
service class uuid and service uuids. Furthermore it is unable to detect
whether a serial connection uses rfcomm or l2cp as base protocol. The
last limitation is the fact that serial sockets can only be established
using rfcomm (no l2cp).
This poses a serious challenge because there is no way to say whether
a given custom service uuid is indeed an SPP based service or whether
it uses rfcomm. The only way to know for sure is to connect and check
whether it succeeds.
This also means QBluetoothServiceInfo instances returned by
QBluetoothServiceDiscoveryAgent may or may not mark a serial service
with SPP uuid or rfcomm protocol tag. Currently, it guess that that a
custom uuid together with SPP uuid implies an rfcomm setup. If the SPP
uuid was not found, rfcomm is never set (but is a requirement for
QBluetoothSocket). This patch makes QBluetoothSocket on Android a bit
more forgiving by assuming every given QBluetoothServiceInfo instance
requires rfcomm. After all that's the only supported protocol on Android.
Fixes: QTBUG-75035
Change-Id: I498ac5acd2a394b198a113fd23d750bbf17a7f7b
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Force value to be a DWORD (unsigned long) instead of HRESULT (signed long).
Fixes
bluetoothsocket_winrt.cpp(770,10): error: case value evaluates to
2147952460, which cannot be narrowed to type 'long' [-Wc++11-narrowing]
Change-Id: I4f1eb75807d4783b835094ad1b33e56f601ffb39
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|