diff options
-rw-r--r-- | dependencies.yaml | 4 | ||||
-rw-r--r-- | examples/nfc/annotatedurl/android/AndroidManifest.xml | 69 | ||||
-rw-r--r-- | src/bluetooth/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/nfc/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/nfc/qnearfieldtarget.cpp | 2 | ||||
-rw-r--r-- | src/nfc/qnearfieldtarget.h | 3 | ||||
-rw-r--r-- | src/nfc/qnearfieldtarget_ios.mm | 12 |
7 files changed, 38 insertions, 54 deletions
diff --git a/dependencies.yaml b/dependencies.yaml index ccedd091..bb02e66a 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -1,7 +1,7 @@ dependencies: ../qtbase: - ref: e7362764d4931f255d2377462df8ac7a0d4e7c84 + ref: 244964d06a3ffcfea922f79c726ba9182149e2c7 required: true ../qtdeclarative: - ref: 330fa93d6e9003c0ea188b9e703f2b3f0448f8c8 + ref: 4ad3d0c6096e6caefec74681eed86c2fa92149fd required: false diff --git a/examples/nfc/annotatedurl/android/AndroidManifest.xml b/examples/nfc/annotatedurl/android/AndroidManifest.xml index 3378612d..101900ab 100644 --- a/examples/nfc/annotatedurl/android/AndroidManifest.xml +++ b/examples/nfc/annotatedurl/android/AndroidManifest.xml @@ -1,53 +1,32 @@ -<?xml version="1.0"?> -<manifest package="org.qtproject.example.annotatedurl" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="-- %%INSERT_VERSION_NAME%% --" android:versionCode="-- %%INSERT_VERSION_CODE%% --" android:installLocation="auto"> - <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application. - Remove the comment if you do not require these default permissions. --> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.qtproject.annotatedurl" + android:installLocation="auto" + android:versionCode="-- %%INSERT_VERSION_CODE%% --" + android:versionName="-- %%INSERT_VERSION_NAME%% --"> <!-- %%INSERT_PERMISSIONS --> - - <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application. - Remove the comment if you do not require these default features. --> <!-- %%INSERT_FEATURES --> - - <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/> - <application android:hardwareAccelerated="true" android:name="org.qtproject.qt.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:requestLegacyExternalStorage="true" android:allowBackup="true" android:fullBackupOnly="false"> - <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTask" android:exported="true"> + <supports-screens android:anyDensity="true" + android:largeScreens="true" + android:normalScreens="true" + android:smallScreens="true"/> + <application android:name="org.qtproject.qt.android.bindings.QtApplication" + android:hardwareAccelerated="true" + android:label="-- %%INSERT_APP_NAME%% --" + android:requestLegacyExternalStorage="true" + android:allowBackup="true" + android:fullBackupOnly="false" + android:icon="@drawable/icon"> + <activity android:name="org.qtproject.qt.android.bindings.QtActivity" + android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" + android:launchMode="singleTop" + android:screenOrientation="unspecified" + android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> - <intent-filter> - <action android:name="android.nfc.action.NDEF_DISCOVERED"/> - <category android:name="android.intent.category.DEFAULT"/> - <data android:mimeType="text/plain"/> - </intent-filter> - - <!-- Application arguments --> - <meta-data android:name="android.app.arguments" android:value="-- %%INSERT_APP_ARGUMENTS%% --"/> - <!-- Application arguments --> - - <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/> - - <!-- Background running --> - <!-- Warning: changing this value to true may cause unexpected crashes if the - application still try to draw after - "applicationStateChanged(Qt::ApplicationSuspended)" - signal is sent! --> - <meta-data android:name="android.app.background_running" android:value="false"/> - <!-- Background running --> - - <!-- extract android style --> - <!-- available android:values : - * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons - * full - useful QWidget & Quick Controls 1 apps - * minimal - useful for Quick Controls 2 apps, it is much faster than "full" - * none - useful for apps that don't use any of the above Qt modules - --> - <meta-data android:name="android.app.extract_android_style" android:value="default"/> - <!-- extract android style --> - </activity> - - <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices --> - + <meta-data android:name="android.app.lib_name" + android:value="-- %%INSERT_APP_LIB_NAME%% --"/> + </activity> </application> - </manifest> diff --git a/src/bluetooth/CMakeLists.txt b/src/bluetooth/CMakeLists.txt index 54e7ac02..296e006c 100644 --- a/src/bluetooth/CMakeLists.txt +++ b/src/bluetooth/CMakeLists.txt @@ -46,7 +46,6 @@ qt_internal_add_module(Bluetooth PRIVATE_MODULE_INTERFACE Qt::CorePrivate Qt::NetworkPrivate - GENERATE_CPP_EXPORTS ) #### Keys ignored in scope 1:.:.:bluetooth.pro:<TRUE>: diff --git a/src/nfc/CMakeLists.txt b/src/nfc/CMakeLists.txt index de2b927f..0c7ba00b 100644 --- a/src/nfc/CMakeLists.txt +++ b/src/nfc/CMakeLists.txt @@ -20,7 +20,6 @@ qt_internal_add_module(Nfc QT_NO_CONTEXTLESS_CONNECT PUBLIC_LIBRARIES Qt::Core - GENERATE_CPP_EXPORTS ) ## Scopes: diff --git a/src/nfc/qnearfieldtarget.cpp b/src/nfc/qnearfieldtarget.cpp index dbcca2bd..7ba8f4d7 100644 --- a/src/nfc/qnearfieldtarget.cpp +++ b/src/nfc/qnearfieldtarget.cpp @@ -90,6 +90,8 @@ QT_IMPL_METATYPE_EXTERN_TAGGED(QNearFieldTarget::RequestId, QNearFieldTarget__Re \value CommandError Failed to send a command to the target. \value TimeoutError The request could not be completed within the time specified in waitForRequestCompleted(). + \value UnsupportedTargetError The target used is unsupported. As example this can occur on missing + required entitlement and/or privacy settings from the client app. */ /*! diff --git a/src/nfc/qnearfieldtarget.h b/src/nfc/qnearfieldtarget.h index 0d67011d..3c76dd53 100644 --- a/src/nfc/qnearfieldtarget.h +++ b/src/nfc/qnearfieldtarget.h @@ -59,7 +59,8 @@ public: NdefReadError, NdefWriteError, CommandError, - TimeoutError + TimeoutError, + UnsupportedTargetError }; Q_ENUM(Error) diff --git a/src/nfc/qnearfieldtarget_ios.mm b/src/nfc/qnearfieldtarget_ios.mm index b058ad75..f49ad4ac 100644 --- a/src/nfc/qnearfieldtarget_ios.mm +++ b/src/nfc/qnearfieldtarget_ios.mm @@ -270,15 +270,19 @@ bool QNearFieldTargetPrivateImpl::connect() id<NFCTag> tag = static_cast<id<NFCTag>>(nfcTag.get()); NFCTagReaderSession* session = tag.session; [session connectToTag: tag completionHandler: ^(NSError* error){ - const bool success = error == nil; - QMetaObject::invokeMethod(this, [this, success] { + const int errorCode = error == nil ? -1 : error.code; + QMetaObject::invokeMethod(this, [this, errorCode] { requestInProgress = QNearFieldTarget::RequestId(); - if (success) { + if (errorCode == -1) { connected = true; onExecuteRequest(); } else { const auto requestId = queue.dequeue().first; - reportError(QNearFieldTarget::ConnectionError, requestId); + reportError( + errorCode == NFCReaderError::NFCReaderErrorSecurityViolation + ? QNearFieldTarget::UnsupportedTargetError + : QNearFieldTarget::ConnectionError, + requestId); invalidate(); } }); |