QtAndroidPrivate Namespace

QtAndroidPrivate 命名空间提供了辅助 Android 开发的各种函数。更多

头文件: #include <QtCore/private/qandroidextras_p.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::CorePrivate)
qmake: QT += core-private
Qt 6.2
状态:初步

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

类型

(since 6.2) enum class BindFlag { None, AutoCreate, DebugUnbind, NotForeground, AboveClient, …, ExternalService }
flags BindFlags

函数

(since 6.2) bool bindService(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) void startActivity(const QAndroidIntent &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
(since 6.2) void startActivity(const QJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
(since 6.2) void startActivity(const QJniObject &intent, int receiverRequestCode, std::function<void (int, int, const QJniObject &)> callbackFunc)
(since 6.2) void startIntentSender(const QJniObject &intentSender, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)

详细说明

类型文档

[since 6.2] 枚举类 QtAndroidPrivate::BindFlag
flags 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> 的类型定义。它存储 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 中引入。

另请参阅 QAndroidIntent,QAndroidServiceConnection, 和BindFlag

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

此函数正在开发中,可能会有更改。

检查此进程是否拥有名为permission 的权限,并返回代表检查结果的QFuture

注: 建议使用QPermission 作为请求权限的 API。如果QPermission 未涵盖您要请求的 Android 权限,则仍可使用此初步 API。

此函数在 Qt 6.2 中引入。

另请参阅 requestPermission() 。

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

此函数正在开发中,可能会有更改。

请求permission 并返回代表请求结果的QFuture

注: 建议使用QPermission 作为请求权限的 API。如果QPermission 未涵盖您要请求的 Android 权限,则仍可使用此初步 API。

此函数在 Qt 6.2 中引入。

另请参阅 checkPermission() 。

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

启动intent 给出的活动,如果resultReceiver 非空,则通过 异步提供结果。

如果resultReceiver 为空,则将调用QNativeInterface::QAndroidApplication::context() 的startActivity() 方法。否则将调用startActivityForResult()

receiverRequestCoderesultReceiver 唯一的请求代码,将与结果一起返回,这样就可以将同一个接收器用于多个意图。

此函数在 Qt 6.2 中引入。

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

启动intent 给出的活动,如果resultReceiver 非空,则通过 异步提供结果。

如果resultReceiver 为空,则将调用QNativeInterface::QAndroidApplication::context() 的startActivity() 方法。否则将调用startActivityForResult()

receiverRequestCoderesultReceiver 唯一的请求代码,将与结果一起返回,这样就可以将同一个接收器用于多个意图。

此函数在 Qt 6.2 中引入。

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

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

该函数在 Qt 6.2 中引入。

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

启动intentSender 给出的活动,如果resultReceiver 非空,则通过 异步提供结果。

如果resultReceiver 为空,则将调用QNativeInterface::QAndroidApplication::context() 的startIntentSender() 方法。否则将调用startIntentSenderForResult()

receiverRequestCoderesultReceiver 唯一的请求代码,将与结果一起返回,这样就可以将同一个接收器用于多个意图。

此函数在 Qt 6.2 中引入。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.