Skip to content

Commit

Permalink
Android: request POST_NOTIFICATIONS permission for Android Notifier
Browse files Browse the repository at this point in the history
Android 13 and above requires the notification permission
"android.permission.POST_NOTIFICATIONS" to be requested at runtime.

Pick-to: 6.7 6.6 6.5
Fixes: QTBUG-121668
Change-Id: I38512ffc07c1a3ffe7cddffa937b98332f172d15
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
  • Loading branch information
Issam-b committed Feb 6, 2024
1 parent ff6a6d3 commit 7fa6d09
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
1 change: 1 addition & 0 deletions examples/corelib/platform/androidnotifier/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ qt_add_executable(androidnotifier
)

target_link_libraries(androidnotifier PRIVATE
Qt6::CorePrivate
Qt6::Widgets
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
android:versionName="1.0">

<!-- %%INSERT_PERMISSIONS -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- %%INSERT_FEATURES -->

<supports-screens
Expand Down
12 changes: 12 additions & 0 deletions examples/corelib/platform/androidnotifier/notificationclient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,22 @@

#include <QtCore/qjniobject.h>
#include <QtCore/qcoreapplication.h>
#include <QtCore/private/qandroidextras_p.h>

using namespace Qt::StringLiterals;

NotificationClient::NotificationClient(QObject *parent)
: QObject(parent)
{
if (QNativeInterface::QAndroidApplication::sdkVersion() >= __ANDROID_API_T__) {
const auto notificationPermission = "android.permission.POST_NOTIFICATIONS"_L1;
auto requestResult = QtAndroidPrivate::requestPermission(notificationPermission);
if (requestResult.result() != QtAndroidPrivate::Authorized) {
qWarning() << "Failed to acquire permission to post notifications "
"(required for Android 13+)";
}
}

connect(this, &NotificationClient::notificationChanged,
this, &NotificationClient::updateAndroidNotification);
}
Expand Down

0 comments on commit 7fa6d09

Please sign in to comment.