Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

QtAndroid Namespace

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

Header: #include <QtAndroid>
qmake: QT += androidextras
Since: Qt 5.3

    Types

    enum BindFlag { None, AutoCreate, DebugUnbind, NotForeground, ..., ExternalService }
    enum PermissionResult { Granted, Denied }
    typedef PermissionResultCallback
    typedef PermissionResultMap
    typedef Runnable

    Functions

    int Q_DECLARE_FLAGS(int, QtAndroid::BindFlag)
    Q_DECL_IMPORT androidSdkVersion()
    Q_DECL_IMPORT bindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, int flags)
    Q_DECL_IMPORT hideSplashScreen()
    Q_DECL_IMPORT hideSplashScreen(int duration)
    Q_DECL_IMPORT requestPermissions(const int &permissions, const QtAndroid::PermissionResultCallback &callbackFunc)
    Q_DECL_IMPORT runOnAndroidThread(const QtAndroid::Runnable &runnable)
    Q_DECL_IMPORT runOnAndroidThreadSync(const QtAndroid::Runnable &runnable, int timeoutMs = ...)
    Q_DECL_IMPORT shouldShowRequestPermissionRationale(const int &permission)
    Q_DECL_IMPORT startActivity(const class QAndroidJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
    Q_DECL_IMPORT startIntentSender(const class QAndroidJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

    Detailed Description

    The QtAndroid namespace provides miscellaneous functions to aid Android development.

    Type Documentation

    enum QtAndroid::BindFlag

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

    Constant Value Description
    QtAndroid::None 0x00000000 No options.
    QtAndroid::AutoCreate 0x00000001 Automatically creates the service as long as the binding exist. See BIND_AUTO_CREATE documentation for more details.
    QtAndroid::DebugUnbind 0x00000002 Include debugging help for mismatched calls to unbind. See BIND_DEBUG_UNBIND documentation for more details.
    QtAndroid::NotForeground 0x00000004 Don't allow this binding to raise the target service's process to the foreground scheduling priority. See BIND_NOT_FOREGROUND documentation for more details.
    QtAndroid::AboveClient 0x00000008 Indicates 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.
    QtAndroid::AllowOomManagement 0x00000010 Allow the process hosting the bound service to go through its normal memory management. See BIND_ALLOW_OOM_MANAGEMENT documentation for more details.
    QtAndroid::WaivePriority 0x00000020 Don't impact the scheduling or memory management priority of the target service's hosting process. See BIND_WAIVE_PRIORITY documentation for more details.
    QtAndroid::Important 0x00000040 This service is assigned a higher priority so that it is available to the client when needed. See BIND_IMPORTANT documentation for more details.
    QtAndroid::AdjustWithActivity 0x00000080 If 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.
    QtAndroid::ExternalService -2147483648 The service being bound is an isolated, external service. See BIND_EXTERNAL_SERVICE documentation for more details.

    This enum was introduced or modified in Qt 5.10.

    enum QtAndroid::PermissionResult

    This enum is used to describe the permission status.

    Constant Value Description
    QtAndroid::Granted 0 The permission was granted.
    QtAndroid::Denied 1 The permission was denied.

    This enum was introduced or modified in Qt 5.10.

    typedef QtAndroid::PermissionResultCallback

    Synonym for std::function<void(const PermissionResultMap &)>.

    typedef QtAndroid::PermissionResultMap

    Synonym for QHash<QString, PermissionResult>.

    typedef QtAndroid::Runnable

    Synonym for std::function<void()>.

    Function Documentation

    int QtAndroid::Q_DECLARE_FLAGS(int, QtAndroid::BindFlag)

    Q_DECL_IMPORT QtAndroid::androidSdkVersion()

    Returns the Android SDK version. This is also known as the API level.

    This function was introduced in Qt 5.3.

    Q_DECL_IMPORT QtAndroid::bindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, int flags)

    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.

    This function was introduced in Qt 5.10.

    See also QAndroidIntent, QAndroidServiceConnection, and BindFlag.

    Q_DECL_IMPORT QtAndroid::hideSplashScreen()

    Hides the splash screen immediately.

    This function was introduced in Qt 5.7.

    Q_DECL_IMPORT QtAndroid::hideSplashScreen(int duration)

    Hides the splash screen, fading it for duration milliseconds.

    This function was introduced in Qt 5.10.

    Q_DECL_IMPORT QtAndroid::requestPermissions(const int &permissions, const QtAndroid::PermissionResultCallback &callbackFunc)

    Asynchronously requests permissions to be granted to this application, callbackFunc will be called with the results.

    This function was introduced in Qt 5.10.

    Q_DECL_IMPORT QtAndroid::runOnAndroidThread(const QtAndroid::Runnable &runnable)

    Posts the given runnable on the android thread. The runnable will be queued and executed on the Android UI thread, unless it called on the Android UI thread, in which case the runnable will be executed immediately.

    This function is useful to set asynchronously properties of objects that must be set on on Android UI thread.

    This function was introduced in Qt 5.7.

    Q_DECL_IMPORT QtAndroid::runOnAndroidThreadSync(const QtAndroid::Runnable &runnable, int timeoutMs = ...)

    Posts the runnable on the Android UI thread and waits until the runnable is executed, or until timeoutMs has passed

    This function is useful to create objects, or get properties on Android UI thread:

    QAndroidJniObject javaControl;
    QtAndroid::runOnAndroidThreadSync([&javaControl](){
    
        // create our Java control on Android UI thread.
        javaControl = QAndroidJniObject("android/webkit/WebView",
                                                    "(Landroid/content/Context;)V",
                                                    QtAndroid::androidActivity().object<jobject>());
        javaControl.callMethod<void>("setWebViewClient",
                                       "(Landroid/webkit/WebViewClient;)V",
                                       QAndroidJniObject("android/webkit/WebViewClient").object());
    });
    
    // Continue the execution normally
    qDebug() << javaControl.isValid();

    This function was introduced in Qt 5.7.

    Q_DECL_IMPORT QtAndroid::shouldShowRequestPermissionRationale(const int &permission)

    Returns true if you should show UI with a rationale for requesting a permission.

    This function was introduced in Qt 5.10.

    Q_DECL_IMPORT QtAndroid::startActivity(const class QAndroidJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

    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.

    This function was introduced in Qt 5.3.

    Q_DECL_IMPORT QtAndroid::startIntentSender(const class QAndroidJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

    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.

    This function was introduced in Qt 5.3.

    Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded