QtAndroidPrivate Namespace
QtAndroidPrivate 命名空间提供了各种辅助 Android 开发的函数。更多内容...
| 头文件: | #include <QtCore/private/qandroidextras_p.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS CorePrivate) 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) |
(technology preview) QFuture<QtAndroidPrivate::PermissionResult> | checkPermission(const QString &permission) |
(technology preview) 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] enum class QtAndroidPrivate::BindFlag
flags QtAndroidPrivate::BindFlags
该枚举与QtAndroidPrivate::bindService 配合使用,用于描述绑定操作的模式。
| 常量 | 值 | 描述 |
|---|---|---|
QtAndroidPrivate::BindFlag::None | 0x00000000 | 无选项。 |
QtAndroidPrivate::BindFlag::AutoCreate | 0x00000001 | 只要绑定存在,就会自动创建服务。更多详细信息,请参阅BIND_AUTO_CREATE文档。 |
QtAndroidPrivate::BindFlag::DebugUnbind | 0x00000002 | 为不匹配的解除绑定调用提供调试帮助。更多详情请参阅BIND_DEBUG_UNBIND文档。 |
QtAndroidPrivate::BindFlag::NotForeground | 0x00000004 | 不允许此绑定将目标服务的进程提升至前台调度优先级。有关详细信息,请参阅BIND_NOT_FOREGROUND文档。 |
QtAndroidPrivate::BindFlag::AboveClient | 0x00000008 | 表示绑定到此服务的客户端应用程序认为该服务比应用程序本身更重要。有关详细信息,请参阅BIND_ABOVE_CLIENT文档。 |
QtAndroidPrivate::BindFlag::AllowOomManagement | 0x00000010 | 允许托管已绑定服务的进程进行常规内存管理。更多详细信息请参阅BIND_ALLOW_OOM_MANAGEMENT文档。 |
QtAndroidPrivate::BindFlag::WaivePriority | 0x00000020 | 不影响目标服务宿主进程的调度或内存管理优先级。更多详细信息请参阅BIND_WAIVE_PRIORITY文档。 |
QtAndroidPrivate::BindFlag::Important | 0x00000040 | 该服务被分配更高的优先级,以便在客户端需要时能够使用。有关详细信息,请参阅BIND_IMPORTANT文档。 |
QtAndroidPrivate::BindFlag::AdjustWithActivity | 0x00000080 | 如果从某个活动进行绑定,则允许根据该活动是否对用户可见来提高目标服务的进程重要性。有关更多详细信息,请参阅BIND_ADJUST_WITH_ACTIVITY文档。 |
QtAndroidPrivate::BindFlag::ExternalService | -2147483648 | 正在绑定的服务是一个隔离的外部服务。更多详细信息请参阅BIND_EXTERNAL_SERVICE文档。 |
该枚举在 Qt 6.2 中引入。
BindFlags 类型是QFlags<BindFlag> 的 typedef。它存储 BindFlag 值的按“或”运算组合。
函数文档
[since 6.2] bool QtAndroidPrivate::bindService(const QAndroidIntent &serviceIntent, const QAndroidServiceConnection &serviceConnection, QtAndroidPrivate::BindFlags flags = BindFlag::None)
绑定由serviceIntent 、serviceConnection 和flags 提供的服务。serviceIntent 对象用于标识要连接的服务。serviceConnection 是一个监听器,用于接收服务启动和停止时的相关信息。
成功时返回 true
更多详细信息请参阅Android 文档。
此函数在 Qt 6.2 中引入。
另请参阅 QAndroidIntent 、QAndroidServiceConnection 以及BindFlag 。
[technology preview] QFuture<QtAndroidPrivate::PermissionResult> QtAndroidPrivate::checkPermission(const QString &permission)
此功能处于技术预览阶段,可能会有变动。
检查该进程是否拥有名为permission 的权限,并返回一个QFuture ,该对象表示检查结果。
注意: QPermission 是请求权限时推荐使用的API。如果QPermission 未涵盖您想要请求的Android权限,仍可使用此预发布API作为替代。
该函数在 Qt 6.2 中引入。
另请参阅 requestPermission()。
[technology preview] 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 为 null,则将调用QNativeInterface::QAndroidApplication::context() 的startActivity() 方法;否则将调用startActivityForResult() 。
receiverRequestCode 是resultReceiver 专属的请求代码,将随结果一同返回,从而允许同一个接收器处理多个意图。
该函数于 Qt 6.2 版本中引入。
[since 6.2] void QtAndroidPrivate::startActivity(const QJniObject &intent, int receiverRequestCode, QAndroidActivityResultReceiver *resultReceiver = nullptr)
启动由 `intent ` 指定的活动,并通过 `resultReceiver `(如果该对象不为空)异步返回结果。
如果resultReceiver 为 null,则将调用QNativeInterface::QAndroidApplication::context() 中的startActivity() 方法。否则将调用startActivityForResult() 。
receiverRequestCode 是resultReceiver 专属的请求代码,将随结果一同返回,从而允许同一接收器处理多个意图。
该函数于 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 为 null,则将调用QNativeInterface::QAndroidApplication::context() 的startIntentSender() 方法。否则将调用startIntentSenderForResult() 。
receiverRequestCode 是resultReceiver 专属的请求代码,将随结果一同返回,从而允许同一接收器处理多个意图。
该函数于 Qt 6.2 中引入。
© 2026 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.