summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Windows: fix object destruction order when terminating helper threadsv6.2.2Ivan Solovev2021-11-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | Windows implementation of QLowEnergyController is using helper threads to perform device connection and characteristics read for services. In both cases a new QObject-derived class instance is created and moved to a helper QThread. A QThread::finished signal was used to destroy both the helper thread and the object. This was creating a situation when the order of destruction for a thread and a nested object was not specified. In practice that could lead to hangs when reading multiple service characteristics, which is specially seen on Windows 11. This patch uses QThread::finished signal to destroy only the nested object. Later on, the object's QObject::destroyed signal is used to destroy the thread itself. Task-number: QTBUG-97578 Change-Id: Ic973b835496b6098d47cd1e124315903c143e3e1 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 981e3f10f48580641f5e2365953ec8a17b5c96a2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* NFC: Fix PendingIntent creation for Android 12Ivan Solovev2021-11-151-1/+7
| | | | | | | | | | | | | | Since Android 12 it's mandatory to specify the mutability of each pending intent. In NFC we require a mutable intent, so we need to conditionally use FLAG_MUTABLE. This was a default value for an intent before Android 12, so no adjustment is required for earlier versions. Fixes: QTBUG-98073 Change-Id: I9a478db016bf9646d84d6e458647614785005977 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> (cherry picked from commit 3753c53fc810c292db93fcfbafffbc097afb0ed1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Windows: fix assert in debug buildIvan Solovev2021-11-111-4/+26
| | | | | | | | | | | | | | | Debug builds of QtBluetooth on Windows were throwing asserts when requesting a bluetooth device by its address, because we did it in a blocking way on a GUI thread. This patch is a partial cherry-pick of 457fd75468f56c0582f3128510e95f9bf2fc9ac3. It introduces an asynchronous way to request a Bluetooth(LE) device. Fixes: QTBUG-98005 Change-Id: I027607ffa32bdc1a3c77484a46833cf7ead09c77 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* IOBluetooth: avoid over-retaining Obj-C entityTimur Pocheptsov2021-11-093-9/+24
| | | | | | | | | | | | | | | | | | | In the past, QBluetoothLocalDevicePrivate was releasing its instance of DarwinBTConnectionMonitor, and IOBluetoothDevice was not retaining this object, thus the correct behavior was assured. Starting from macOS 12 the behavior changed, just releasing in a dtor is not enough anymore, instead we should unregister 'monitor' manually, so that IOBluetoothDevice releases its ownership too. The problem was found when connecting to LE device which is Classic device at the same moment, resulting in IOBluetooth sending a notification to the monitor object, which has a dandling pointer to QBluetoothLocalDevicePrivate. Fixes: QTBUG-97900 Change-Id: Idcc1233ce51795c561dbee8fd6d9a7aff592a5a2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> (cherry picked from commit 370de7fe8447b8d2216a4cd130df211b05260b8c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Android BT LE server connectivity detection with multiple devicesJuha Vuolle2021-10-293-26/+53
| | | | | | | | | | | | | | | | | | | | | | | | A BT LE server can serve multiple remote devices concurrently. The original problem was that if any of the remote devices disconnected, the BT LE server would also report itself as disconnected even if there were still connected devices. This disconnection can happen even if the remote device was not in any way interested in the Qt BT LE server (eg. LE headphones disconnecting during pairing). This commit checks if there are still connected devices and reports disconnection when the last device has disconnected. Additionally the remoteAddress and remoteName are updated to reflect these events: - if a device is connected, that device's address will be used - if a device is disconnected and it was the most recent device, the address is set to that of another still connected device Fixes: QTBUG-97576 Change-Id: I785e51574aea5e0d0a806a26f07a497101d9bab5 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 0879874ca49042e5a4aeb1a3ec158d04b7578bbe) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add characteristic min/max checks on Android BT LEJuha Vuolle2021-10-294-10/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The QLowEnergyCharacteristicData allows user to define minimum and maximum lengths for the characteristic values. This commit adds support for Android BT LE to enforce these limits if they are set. There are four distinct places where these checks are done: 1) When the services and their characteristics are added to the server by QLowEnergyController::addService(). If developer has set size limits and a value whose size violates these limits, the characteristic is ignored with a warning. 2) When the server later on updates its characteristic values. The update is ignored if the size limits are violated. 3.1) When a remote control device makes a regular write to the characteristic. If the value size limits are violated, a GATT error is returned and value will not be updated. 3.2) When a remote control device makes a prepared write to the characteristic. With prepared write the size cannot decrease, and we don't need to check against the minimum value length. If the value size limits are violated, a GATT error is returned and value will not be updated. Fixes: QTBUG-96997 Change-Id: Ib804a1d25e54a1767b665e6e2799ac617e8f148f Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit b43a85f6d7c134080a7dd30d162a59198d5c3f22) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update mtu related documentationAlex Blasche2021-10-201-0/+17
| | | | | | | | Change-Id: I342a6c38b75846a451116c506173077780160456 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> (cherry picked from commit e84efc5e26b7c902b7a3ea0204757561b0dc7b70) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add support for BT LE descriptor prepared write on AndroidJuha Vuolle2021-10-201-48/+89
| | | | | | | | | | | | | | | | | The prepared writes are used to write descriptors (or characteristics) values that are larger than MTU (Maximum Transimission Unit), or to perform partial value writes. As an example if a descriptor's size is 50 bytes and single packet's payload size is 20 (== MTU - protocol overhead), the write will be split into 20 + 20 + 10. This commit adds the necessary support for the reassembly on the server/peripheral end. Fixes: QTBUG-96996 Change-Id: I8e1dfdfeb81f92e5b4c52ae29d88abad1e42ba62 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 33958368e0317d8e130ed950d82b5e8250c61ec7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add QLowEnergyController::mtu() support on BT LE server side on AndroidJuha Vuolle2021-10-202-5/+18
| | | | | | | | | | | The mtu() function was available on the control side, this commit adds this also on the server (peripheral) side. Task-number: QTBUG-96995 Change-Id: I2f13d2ba8a6d1f228f9da87d4d99b2a45fe5479d Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit c0dd49d88dc2fe89c080d2baa0da1efde559893f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Refactor characteristics read for WinRTIvan Solovev2021-10-131-188/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | The characteristics read was using IAsyncOperation->put_Completed() to process the results of descriptor reading. Each of these completed callbacks is executed in its own thread. In our case each of the callbacks is also calling QWinRTFunctions::await() to perform some async operations. As a result, if the service has a lot of characteristics, we could end up spawning multiple threads, each of them doing some CPU-consuming operations. Normally it's not a problem, but looks like for some bluetooth peripherals reading the characteristics can take significant time. Connecting to such devices can result in 100% CPU load for all cores if the number of characteristics exceeds the number of logical CPUs. This patch removes the put_Completed() approach in favor of another QWinRTFunctions::async() call. This will guarantee that all the characteristics read operations are performed in the same worker thread. As a drawback, characteristics reading becomes sequential, which makes it slower. Fixes: QTBUG-97242 Change-Id: I0d641b8c65e628bb09a26380f5b12ba2582f210e Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 2a7ef291d696745887e71f8b0e27cb4c8701bdd2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Add macOS specific dependency informationNico Vertriest2021-10-081-0/+10
| | | | | | | | | | | Qt Bluetooth requires QGuiApplication in certain cases, make sure that this is covered by the module docs. Task-number: QTBUG-86796 Change-Id: Ib7918321b84ae51b436d2e47921e3de6d6736ad3 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit 8a1b1ac7f694f50f75a56a1d10f204e66e62ea76) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add support for large BT LE characteristic writes on AndroidJuha Vuolle2021-10-072-11/+102
| | | | | | | | | | | | | | | | | This commit adds support for control devices writing characteristic values that are larger than the MTU. For instance if MTU payload is 20 bytes, the writes to a 40 byte characteristic will be split in 2 consecutive writes. With this commit these writes are recorded at the server device (peripheral) end, and later applied. Task-number: QTBUG-96688 Change-Id: I43c261c9ea39cca7c744af3222959c85a57ba11d Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 38562c2ba5c3d25127e1a845da673299b40a6473) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QLowEnergyControllerWinRT: refactor connection to deviceIvan Solovev2021-10-052-220/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a separate worker that will do all the system calls in a separate thread and emit a signal once it's done. This will allow to avoid the crashes caused by disconnectFromDevice() being called while connection is still in progress and spinning in the QWinRTFunctions::await() method. Basically this patch moves the connection code to a separate worker, and introduces new macros to handle the errors. It also makes use of the new early return condition of QWinRTFunctions::await() that was introduced in 1f86957f1dd14cc538e7ad9ffee4eb63001af407. As a drive-by: increased the characteristics read timeout, because the initial one was not always enough even for a turned-on device. Apart from that this patch also solves some other issues and crashes that could happen due to async nature of some calls. For example: - handle the fact that service discovery might finish after the device was disconnected. No need to notify about discovered services in this case. - add missing checks for thisPtr != nullptr in some callbacks that capture thisPtr. Task-number: QTBUG-96057 Change-Id: Ia2d044a89e3427a53d0879e045b6230d16bac3ce Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit a00ffdfc3569a5741bc42739570dea2ec52b7f0f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Port QBluetoothLocalDevice_winrt to c++/winrtOliver Wolff2021-09-282-84/+32
| | | | | | | Change-Id: I05062d40a6ae8b09f0b267dff2203f36c885d23e Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit d6dc79a13c9066b4c5cee217524da02f28dbf359) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Port qbluetoothutils_winrt to c++/winrtOliver Wolff2021-09-282-19/+13
| | | | | | | Change-Id: Iaa73420d1fd3c3f40a508f36cc3d1efa307ccd18 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit b0816c6a5a8599025f0329e74127217e257fbfef) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Move connecting to a LE device to background on WindowsJuha Vuolle2021-09-202-2/+11
| | | | | | | | | | | | | | | | | | | | The BT LE connectToDevice() method on Windows was a synchronous operation for the caller by blocking while spinning the event loop to keep rest of the application responsive. Other platforms behave differently. This commit makes the connect call to return immediately while scheduling the connection in the background. The QTBUG-83633 was originally about slightly different crash which seems not be reproducible anymore, but this crash was found while investigating that and is investigated in that item. Task-number: QTBUG-83633 Change-Id: I092a94f2437351d27da758db6746f5b24d5fa9c7 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 3fc3716e0cd209cd9475d632925a9148b40b2f1d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove outdated Windows BT LE noteJuha Vuolle2021-09-201-3/+0
| | | | | | | | | | | | The limitation to paired devices seems to be indeed present when using Qt 5 UWP BT stack, but with Qt 6 Windows BT stack one can also see the unpaired devices. Change-Id: I034b997567bd96f22586c33c19a8aa03b8fdc58f Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit f01425d4d8a47921a43e2b74cc662116d1bb68b5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Cleanup QLowEnergyController WinRTIvan Solovev2021-09-172-37/+23
| | | | | | | | | | | | | | | | This patch introduces some minor cleanups: * Fix used error code in case the remote device address is invalid. * Introduce a helper function to handle connection errors. This allows to avoid code duplications. * Simplify CHECK_FOR_DEVICE_CONNECTION_ERROR_IMPL macro to use the new helper function. * Minor formatting and indentation cleanups. Change-Id: I3c679bef56f719c2e97dc9399c3bae33032f3861 Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit bcaae09e94373d45ac62d283b404f3b9c02cde30) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* winrt: Protect from late AdvertisementReceived callbackIvan Solovev2021-09-171-93/+105
| | | | | | | | | | | This commit amends 83a845aa0e5bb155fae3f1d5d27bb80801f90935. The callback can be called after the worker was deleted. Task-number: QTBUG-96057 Change-Id: Ifbd58b240667bd5ff805b4250cf98a9fd2f96e90 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 3573702aa81f3f7ea20e947dbd27c5d1122cc42a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* More consistent logging category use in bluetooth implementationsJuha Vuolle2021-09-176-8/+8
| | | | | | | | | | | There were few plain qDebugs and qWarnings in the bluetooth code which content-wise seem indistinguishable from categorized logging in the same code. Change-Id: I0a1a5c7fb14bd5d8b767a5f982ed5c2b3768f265 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit a82c068a8ce41f92816c015e9dc5957f7c3ec654) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QLowEnergyController(WinRT): introduce timeout for connectionIvan Solovev2021-09-171-2/+19
| | | | | | | | | | | | | | | | The connection method was infinitely trying to connect to a specified bluetooth device, which does not make much sense and could lead to the application being stuck. This patch limits the connection attempts to a reasonable amount of time. If the connection was not established within this time, ConnectionError is set and controller state is reset to UnconnectedState Fixes: QTBUG-80719 Fixes: QTBUG-89149 Change-Id: Ib8efb690a8b0485c8e9d4844799c7332ab81bf97 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 007dcbf074a9e4d72e2a29a4a28ac5e502830e20) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove metatype related deprecation warnings from WinRT backendJuha Vuolle2021-09-131-2/+2
| | | | | | | Change-Id: Ia6fd8e522798ef9736f3dfe559f69d4ee75b2f5b Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit 75c41779262a7aec38f46b6e1598a339a6ab759c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove string-related compilation warnings in WinRT backendJuha Vuolle2021-09-133-3/+3
| | | | | | | Change-Id: I231ed4f6b3f8a7826730e0073eb817a1231cc94a Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit ceee32505e5aba407039eeaff503e14c4c71c6d1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove unnecessary Qt version check and related redundant codeJuha Vuolle2021-09-131-4/+0
| | | | | | | Change-Id: I6bd8a15d2d7bbdf3133993335c91dd47f8bc23fe Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit 58f7f0a6cdb29d3a63a5dfd2714ba82245370beb) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* IOBluetoothDeviceInquiry: manually interrupt Classic scanTimur Pocheptsov2021-09-071-18/+45
| | | | | | | | | | | | | | | | If 'inquiryLength' was ignored. This change is to be revisited after the official release of macOS 12 - it could be a bug in beta versions and all this additional timer machinery is a waste. The fact I was able to observe the same problem with 10.15.7 is quite troublesome though. Fixes: QTBUG-95960 Task-number: QTBUG-95686 Change-Id: I56685e07791dd751aec81bebbeefde19d31555df Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit cf8ade9fd809e62cb61bb897b3789c75a48f5996) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Update the depends list to fix a broken linkVenugopal Shivashankar2021-09-071-1/+1
| | | | | | | | | | | The qmake manual is a separate module that must be in the depends list. Task-number: QTBUB-96181 Change-Id: I5d20539de93789e9f6c123284cd47fd3e4b7ebca Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit c27804dec55aa01b57123a3a3dd9d6d77c88f11c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove remaining cases of isBluez5()Alex Blasche2021-09-073-30/+6
| | | | | | | | | | initializeBluez5() takes care of it now. Task-number: QTBUG-75342 Change-Id: I5c8f3594e7f0c862f6a513d28467d5c9b31f9e40 Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> (cherry picked from commit 160c07a275787ff227e8bf3a8b325b83f8b41583) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix qdoc warningsVenugopal Shivashankar2021-09-063-4/+3
| | | | | | | | | | | | qt5/qtconnectivity/src/bluetooth/doc/src/bluetooth-cpp.qdoc:27: (qdoc) warning: Can't link to 'Qt Bluetooth QML Types' qt5/qtconnectivity/src/bluetooth/doc/src/bluetooth-index.qdoc:28: (qdoc) warning: Can't link to 'qmake' qt5/qtconnectivity/src/bluetooth/doc/src/bluetooth-index.qdoc:28: (qdoc) warning: Can't link to 'Build with CMake' Task-number: QTBUG-96181 Change-Id: Ia5e9296f91e392aba59f555f6e93dcbe054f08cc Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit 1bc0261f928da78aafabeac2373bb207092f3ca6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Better naming of member variables in QBluetoothSocketBasePrivateAndreas Buhr2021-09-015-40/+40
| | | | | | | | | | | | | | There was a naming asymmetry in QBluetoothSocketBasePrivate: The receiving buffer was named "buffer" while the sending buffer was named "txBuffer". This was really annoying. This patch renames the receiving buffer to "rxBuffer" so we have symmetric names: "rxBuffer" / "txBuffer". Change-Id: Ifbd5032cd5f6229543525496f6f656b7b7fc2e25 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit dfa11d982c8414083d6ed777f743cd078e53f972) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename variables and methods having Bluez5 in their nameAndreas Buhr2021-08-308-117/+109
| | | | | | | | | | | | | | A lot of variables and methods were doubled, having one for BlueZ4 and one for BlueZ5. Having dropped support for BlueZ4, there is only the Bluez5 variant left. The "Bluez5" part of their name is not required any more. This patch removes it. Task-number: QTBUG-75342 Change-Id: I4c27cddbcca465b877cb7f2b7372a85a38de0076 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit a3ac0c1c4f52a882a0223310108c05b7d85ccc1e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove BlueZ4 XML files and their usageAndreas Buhr2021-08-3020-774/+0
| | | | | | | | | | | The BlueZ4 DBUS interface is described in XML files. After removal of BlueZ4 support, this patch removes these. Task-number: QTBUG-75342 Change-Id: Ib6da83d2dd6cb5c5c3875d1a717bd8e30a617eb4 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 69b4f604744322699abb8e4baffbe38d60c504f5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove BlueZ4 detectionAndreas Buhr2021-08-301-15/+4
| | | | | | | | | | | Even though BlueZ 4 is no longer supported, detection for it was still in the code. This patch removes it. Task-number: QTBUG-75342 Change-Id: I274993a93404603a51499f8ea967193b450bb6da Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 84a66e212fdfe01ba7ddc9da2e380022305cde41) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove BlueZ4 code paths in QLowEnergyControllerAndreas Buhr2021-08-271-55/+21
| | | | | | | | | | This patch removes the BlueZ 4 code paths in QLowEnergyController. Task-number: QTBUG-75342 Change-Id: I02482b508a05914f6c4b15d5d33034d86c3df988 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 20fbdb4ac7ec9528a54cdc776f3d61a64427cfc9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove BlueZ4 implementation from BluetoothServiceInfoAndreas Buhr2021-08-272-141/+63
| | | | | | | | Task-number: QTBUG-75342 Change-Id: Iec175eccb4e41ab7e1a93a79595fafe1cad6ee18 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 5f5778ed6eda8c682c8e317bd3ad16eefb1f7ea2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove BlueZ4 implementation from BluetoothSocketAndreas Buhr2021-08-271-52/+19
| | | | | | | | Task-number: QTBUG-75342 Change-Id: Iabaa559747de369571be64be87da8b0200470ead Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit fbaf177a6f71fbc79ab2670f4a27b9669285829d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix qdoc warningsVenugopal Shivashankar2021-08-232-7/+7
| | | | | | | | | | | | | | qt5/qtconnectivity/src/bluetooth/qlowenergydescriptor.cpp:47: (qdoc) warning: Can't link to 'handle()' qt5/qtconnectivity/src/bluetooth/qlowenergycharacteristic.cpp:46: (qdoc) warning: Can't link to 'handle()' Also, dropped unnecessary \l commands against potential auto-links. Task-number: QTBUG-95860 Change-Id: I3b0286703b65365fef202438d21e4eca446a1c2f Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io> (cherry picked from commit 72a11fd0a35e9048d1646c93ae0a4795018a58e0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Replace "Getting Started" by "Using the Module" in QtBluetooth docsAndreas Buhr2021-08-192-3/+11
| | | | | | | | Fixes: QTBUG-94894 Change-Id: I628af802fc589e163dc9087fa7fc3fd7db71caba Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit fdf6b6bd84f3ae853b97946f2e9ea3d7a5c35426) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Beautify QtBluetooth 6 migration guideAndreas Buhr2021-08-191-55/+71
| | | | | | | | | | Better styling, working links. Fixes: QTBUG-94905 Change-Id: I3526c64fd15897bd0e0e33c4f78c9852d54fd2ae Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit 391fd67c685bc8fe1f769b5ae3c65095f1322ad0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Don't mention changes in Qt 5.7 in QtBluetooth introduction docsAndreas Buhr2021-08-191-3/+0
| | | | | | | | | | | People reading the introduction are probably not interested in changes long ago. Task-number: QTBUG-94894 Change-Id: Ie9511d90aee6ce356f0f6ad7a4c91d518bc71e97 Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit f58597edfe7b228698d3977fce498d292259c092) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove documentation of previously removed Qt Bluetooth QML typesAndreas Buhr2021-08-194-141/+1
| | | | | | | | | | | | The QML interface to Qt Bluetooth was removed. This patch removes some remainders in the documentation. Task-number: QTBUG-94894 Change-Id: I4e4d0ae354ccc1b88aa8530b89e6786752b8af49 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 77c628bc7c7025361abce4a01496434e42bc21e5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QtNFC: add CMake info to class documentationIvan Solovev2021-07-301-0/+1
| | | | | | | | Fixes: QTBUG-94897 Change-Id: I70ee048a4cd31816c65ec8ea52b46605fd9396f8 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit c3c01965562667a712e5d69cb8c8da2dc9c35854) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Use private permission APIAssam Boudjelthia2021-07-281-5/+6
| | | | | | | | | | | The public permission API is being postponed until 6.3, for now, we can use the private API. Change-Id: I46d49c44c9227e2260d599bfbb2f58ecfa4e6381 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 236809d7a5d4aefbb2f32df6f5f1ef7e3f712e82) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Doc: Fix typoPaul Wicking2021-07-261-1/+1
| | | | | | | | Fixes: QTBUG-95349 Change-Id: Ie1a7c71a33e5d620d914ffce193a89d080d81af9 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit eef11fe06c8458b9668f367502a479497831db62) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rename streamingoperator to adhere to camelCaseAndreas Buhr2021-07-236-9/+9
| | | | | | | | | | | | | | | | | operator<< was changed to be a hidden friend in QtBluetooth. Two properties of operator<< were desired: First, it should be a hidden friend. This implies that it is defined inline. Second, its implementation should not part of the public interface. To achieve both, an indirection and the static method streamingoperator() were introduced. This patch changes its name to streamingOperator() to adhere to Qt's camelCase coding style. Change-Id: I4e01a81eac8261c5198cdb832c1345efbf647419 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit cef4a5e9d55940140f27d98931b2a6778d154209) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Create Qt5.15 to 6.2 migration documentation for QtBluetoothAndreas Buhr2021-07-223-119/+154
| | | | | | | | Task-number: QTBUG-90920 Change-Id: I1d99a7f6c6cd0f5f890c65c052ea8ceb87760275 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 2e8e58b0eca8b060e02e6b65b57bf14a6a6313ed) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* introduce new error for location service turned offAndreas Buhr2021-07-203-1/+5
| | | | | | | | Task-number: QTBUG-90760 Change-Id: I6a75ec72aaf8e23ba415edf9b7fdfa7f220fc10d Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit cba00a4ccdf7e973b10f2a2dad490e0e60fa541c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* LE controller (CoreBluetooth): do not emit MTU change on disconnectedTimur Pocheptsov2021-07-201-1/+0
| | | | | | | | | | Makes little sense to report the 'default' MTU from the 'didDisconnect' callback. Change-Id: Id186431234d22695409287847bb8614cf3a7ad7b Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit ebae4d82705ccff3d3bc32bce88bf72eb11833d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Move sdpscanner to libexecKai Köhne2021-07-162-1/+2
| | | | | | | | Task-number: QTBUG-88791 Change-Id: Ie4dad8be6871e4aa638e234b36fd481f32b05724 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 0359dce1d420acd4d33be43cb70b35674870338e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve detection of enabled location service on SDK<28Andreas Buhr2021-07-121-12/+9
| | | | | | | | | | | | | | | | | | | Bluetooth seems to be non-functional when location services are disabled. This is not documented in Android's documentations, but several bug entries exist about this which are closed as "works as intended". See the linked bug entry for details. Our code thus tries to detect whether location services are enabled. This patch improves the detection of enabled location services. While the previous code did only check for GPS and Network location providers, the new code should detect any enabled location provider. Fixes: QTBUG-90760 Change-Id: I0c670296d0af62161dbc3fca40889996fa91f0ca Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 4fdcd2d8d2c2b47ec142b744ad291c1e134db7d4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CoreBluetooth (peripheral role) - remove a dummy methodTimur Pocheptsov2021-07-082-10/+0
| | | | | | | | | | | | Having this method implies we create our peripheral with a unique identifier and support state restoration, which is not true at the moment. CoreBluetooth angrily warns us about missing identifier and useless method, so we remove it for now. Change-Id: I186549a3b758ad4e5173e873954e95478969dc21 Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> (cherry picked from commit f26b0814141f4a01c28d26478d8c661503d4bed2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>