QtAndroidPrivate Namespace

The QtAndroidPrivate namespace provides miscellaneous functions to aid Android development. More...

Header: #include <QtCore/private/qandroidextras_p.h>

Types

enum class BindFlag { None, AutoCreate, DebugUnbind, NotForeground, AboveClient, …, ExternalService }
flags BindFlags

Functions

bool bindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, BindFlags flags = BindFlag::None)
QFuture<QtAndroidPrivate::PermissionResult> checkPermission(const QString &permission)
QFuture<QtAndroidPrivate::PermissionResult> requestPermission(const QString &permission)
void startActivity(const QJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
void startActivity(const QAndroidIntent &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
void startActivity(const QJniObject &intent, int receiverRequestCode, int callbackFunc)
void startIntentSender(const QJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

Detailed Description

\preliminary\inmodule QtCorePrivate \since 6.2

When building with CMake, use the following commands to use private Qt Core APIs:

 find_package(Qt6 REQUIRED COMPONENTS Core)
 target_link_libraries(mytarget PRIVATE Qt6::CorePrivate)

Type Documentation

enum class QtAndroidPrivate::BindFlag
flags QtAndroidPrivate::BindFlags

\since6.2

This enum is used with QtAndroidPrivate::bindService to describe the mode in which the binding is performed.

ConstantValueDescription
QtAndroidPrivate::BindFlag::None0x00000000No options.
QtAndroidPrivate::BindFlag::AutoCreate0x00000001Automatically creates the service as long as the binding exist. See BIND_AUTO_CREATE documentation for more details.
QtAndroidPrivate::BindFlag::DebugUnbind0x00000002Include debugging help for mismatched calls to unbind. See BIND_DEBUG_UNBIND documentation for more details.
QtAndroidPrivate::BindFlag::NotForeground0x00000004Don't allow this binding to raise the target service's process to the foreground scheduling priority. See BIND_NOT_FOREGROUND documentation for more details.
QtAndroidPrivate::BindFlag::AboveClient0x00000008Indicates that the client application binding to this service considers the service to be more important than the app itself. See BIND_ABOVE_CLIENT documentation for more details.
QtAndroidPrivate::BindFlag::AllowOomManagement0x00000010Allow the process hosting the bound service to go through its normal memory management. See BIND_ALLOW_OOM_MANAGEMENT documentation for more details.
QtAndroidPrivate::BindFlag::WaivePriority0x00000020Don't impact the scheduling or memory management priority of the target service's hosting process. See BIND_WAIVE_PRIORITY documentation for more details.
QtAndroidPrivate::BindFlag::Important0x00000040This service is assigned a higher priority so that it is available to the client when needed. See BIND_IMPORTANT documentation for more details.
QtAndroidPrivate::BindFlag::AdjustWithActivity0x00000080If binding from an activity, allow the target service's process importance to be raised based on whether the activity is visible to the user. See BIND_ADJUST_WITH_ACTIVITY documentation for more details.
QtAndroidPrivate::BindFlag::ExternalService-2147483648The service being bound is an isolated, external service. See BIND_EXTERNAL_SERVICE documentation for more details.

The BindFlags type is a typedef for QFlags<BindFlag>. It stores an OR combination of BindFlag values.

Function Documentation

bool QtAndroidPrivate::bindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, BindFlags flags = BindFlag::None)

\since6.2

Binds the service given by serviceIntent, serviceConnection and flags. The serviceIntent object identifies the service to connect to. The serviceConnection is a listener that receives the information as the service is started and stopped.

Returns true on success

See Android documentation documentation for more details.

See also QAndroidIntent, QAndroidServiceConnection, and BindFlag.

QFuture<QtAndroidPrivate::PermissionResult> QtAndroidPrivate::checkPermission(const QString &permission)

\preliminaryChecks whether this process has the named permission and returns a QFuture representing the result of the check.

\since6.2

See also requestPermission().

QFuture<QtAndroidPrivate::PermissionResult> QtAndroidPrivate::requestPermission(const QString &permission)

\preliminaryRequests the permission and returns a QFuture representing the result of the request.

\since6.2

See also checkPermission().

void QtAndroidPrivate::startActivity(const QJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

\since6.2

Starts the activity given by intent and provides the result asynchronously through the resultReceiver if this is non-null.

If resultReceiver is null, then the startActivity() method in the androidActivity() will be called. Otherwise startActivityForResult() will be called.

The receiverRequestCode is a request code unique to the resultReceiver, and will be returned along with the result, making it possible to use the same receiver for more than one intent.

void QtAndroidPrivate::startActivity(const QAndroidIntent &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

\since6.2

Starts the activity given by intent and provides the result asynchronously through the resultReceiver if this is non-null.

If resultReceiver is null, then the startActivity() method in the androidActivity() will be called. Otherwise startActivityForResult() will be called.

The receiverRequestCode is a request code unique to the resultReceiver, and will be returned along with the result, making it possible to use the same receiver for more than one intent.

void QtAndroidPrivate::startActivity(const QJniObject &intent, int receiverRequestCode, int callbackFunc)

\since6.2

Starts the activity given by intent, using the request code receiverRequestCode, and provides the result by calling callbackFunc.

void QtAndroidPrivate::startIntentSender(const QJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

\since6.2

Starts the activity given by intentSender and provides the result asynchronously through the resultReceiver if this is non-null.

If resultReceiver is null, then the startIntentSender() method in the androidActivity() will be called. Otherwise startIntentSenderForResult() will be called.

The receiverRequestCode is a request code unique to the resultReceiver, and will be returned along with the result, making it possible to use the same receiver for more than one intent.