QtAndroidPrivate 命名空间

QtAndroidPrivate 命名空间提供了各种辅助函数,以支持 Android 开发。 更多信息...

头文件 #include <QtCore/private/qandroidextras_p.h>
qmakeQT += core-private
Qt 6.2
状态初步的

此命名空间正在开发中,可能发生变化。

类型

(since 6.2) 枚举类BindFlag { None, AutoCreate, DebugUnbind, NotForeground, AboveClient, …, ExternalService }
标志BindFlags

函数

(since 6.2) boolbindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, QtAndroidPrivate::BindFlags flags = BindFlag::None)
(preliminary) QFuture<QtAndroidPrivate::PermissionResult>checkPermission(const QString &permission)
(preliminary) QFuture<QtAndroidPrivate::PermissionResult>requestPermission(const QString &permission)
(since 6.2) voidstartActivity(const QJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
(since 6.2) voidstartActivity(const QAndroidIntent &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
(since 6.2) voidstartActivity(const QJniObject &intent, int receiverRequestCode, std::function<void (int, int, const QJniObject &)> callbackFunc)
(since 6.2) voidstartIntentSender(const QJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

详细描述

当使用 CMake 构建时,请使用以下命令使用私有 Qt 核心库 API

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

类型文档

[since 6.2] 枚举类 QtAndroidPrivate::BindFlag
标志 QtAndroidPrivate::BindFlags

此枚举类与 QtAndroidPrivate::bindService 一起使用,以描述绑定执行的模式。

常数描述
QtAndroidPrivate::BindFlag::None0x00000000无选项。
QtAndroidPrivate::BindFlag::AutoCreate0x00000001如果绑定存在,则自动创建服务。有关更多详细信息,请参阅 BIND_AUTO_CREATE 文档。
QtAndroidPrivate::BindFlag::DebugUnbind0x00000002包含解绑时调用不匹配的调试帮助。请参阅BIND_DEBUG_UNBIND文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::NotForeground0x00000004不允许此绑定将目标服务的进程提升到前台调度优先级。请参阅BIND_NOT_FOREGROUND文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::AboveClient0x00000008表示绑定到该服务的客户端应用程序认为该服务比应用程序本身更重要。请参阅BIND_ABOVE_CLIENT文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::AllowOomManagement0x00000010允许托管绑定的服务的进程通过其正常的内存管理。请参阅BIND_ALLOW_OOM_MANAGEMENT文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::WaivePriority0x00000020不要影响目标服务托管进程的调度或内存管理优先级。请参阅BIND_WAIVE_PRIORITY文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::Important0x00000040此服务被分配了更高的优先级,以使其在需要时对客户端可用。请参阅BIND_IMPORTANT文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::AdjustWithActivity0x00000080如果从活动进行绑定,允许根据活动是否对用户可见来提高目标服务的进程重要性。请参阅BIND_ADJUST_WITH_ACTIVITY文档以获取更多详细信息。
QtAndroidPrivate::BindFlag::ExternalService-2147483648被绑定的服务是一个隔离的、外部服务。请参阅BIND_EXTERNAL_SERVICE文档以获取更多详细信息。

此枚举在 Qt 6.2 中引入。

BindFlags 类型是 QFlags<BindFlag> 的 typedef。它存储了 BindFlag 值的 OR 组合。

函数文档

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

serviceIntentserviceConnectionflags 给定的服务绑定。serviceIntent 对象标识要连接到服务。serviceConnection 是一个监听器,在服务启动和停止时接收信息。

在成功时返回 true

请参阅Android 文档以获取更多详细信息。

此函数在 Qt 6.2 中引入。

另请参阅QAndroidIntentQAndroidServiceConnectionBindFlag

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

此函数处于开发阶段,可能会更改。

检查此进程是否具有指定的 权限,并返回表示检查结果的 QFuture

此函数在 Qt 6.2 中引入。

另请参阅 requestPermission

[初稿] QFuture<QtAndroidPrivate::PermissionResult> QtAndroidPrivate::requestPermission(const QString &权限)

此函数处于开发阶段,可能会更改。

请求 权限 并返回表示请求结果的 QFuture

此函数在 Qt 6.2 中引入。

另请参阅 checkPermission

[自6.2起] void QtAndroidPrivate::startActivity(const QJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

启动由 intent 指定的活动,并在非空时异步通过 resultReceiver 提供结果。

如果 resultReceiver 为空,则将在 androidActivity() 中调用 startActivity() 方法。否则将调用 startActivityForResult()

receiverRequestCode 是用于 resultReceiver 的唯一请求代码,将在结果中返回,使得能够为多个 intent 使用相同的接收器。

此函数在 Qt 6.2 中引入。

[自6.2起] void QtAndroidPrivate::startActivity(const QAndroidIntent &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

启动由 intent 指定的活动,并在非空时异步通过 resultReceiver 提供结果。

如果 resultReceiver 为空,则将在 androidActivity() 中调用 startActivity() 方法。否则将调用 startActivityForResult()

receiverRequestCode 是用于 resultReceiver 的唯一请求代码,将在结果中返回,使得能够为多个 intent 使用相同的接收器。

此函数在 Qt 6.2 中引入。

[自6.2起] void QtAndroidPrivate::startActivity(const QJniObject &intent, int receiverRequestCode, std::function<void (int, int, const QJniObject &)> callbackFunc)

使用请求代码 receiverRequestCode 启动由 intent 指定的活动,并通过调用 callbackFunc 提供结果。

此函数在 Qt 6.2 中引入。

[自6.2起] void QtAndroidPrivate::startIntentSender(const QJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

启动由 intentSender 指定的活动,并在非空时异步通过 resultReceiver 提供结果。

如果 resultReceiver 为空,则将在 androidActivity() 中调用 startIntentSender() 方法。否则将调用 startIntentSenderForResult()

receiverRequestCode 是用于 resultReceiver 的唯一请求代码,将在结果中返回,使得能够为多个 intent 使用相同的接收器。

此函数在 Qt 6.2 中引入。

© 2024 The Qt Company Ltd. 本文档中的文档贡献为各自所有者的版权。本文件中的文档是根据免费软件基金会发布的 GNU 自由文档许可证第1.3版 许可的。Qt 及其他标志是 The Qt Company Ltd. 在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。