QAndroidBinder 类

封装 Android Binder 类最重要的方法。 更多...

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

此类正在开发中,可能会有所变化。

公共类型

枚举类型CallType { Normal, OneWay }

公共函数

QAndroidBinder()
QAndroidBinder(const QJniObject &binder)
QJniObjecthandle() const
virtual boolonTransact(int code, const QAndroidParcel &data, const QAndroidParcel &reply, QAndroidBinder::CallType flags)
booltransact(int code, const QAndroidParcel &data, QAndroidParcel *reply = nullptr, QAndroidBinder::CallType flags = CallType::Normal) const

详细描述

QAndroidBinder 是一个便利类,它封装了最重要的 Android Binder 方法。

在用 CMake 构建时,使用以下命令来使用私有的 Qt Core API

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

成员类型文档

enum class QAndroidBinder::CallType

此枚举与 QAndroidBinder::transact() 一起使用,用于描述 IPC 调用执行的模式。

常量描述
QAndroidBinder::CallType::Normal0常规 IPC,意味着调用方等待被调用方的结果
QAndroidBinder::CallType::OneWay1单向 IPC,意味着调用方立即返回,不等待被调用方的结果

成员函数文档

[显式] QAndroidBinder::QAndroidBinder()

创建一个新的对象,可用于执行 IPC。

另请参阅 onTransacttransact

QAndroidBinder::QAndroidBinder(const QJniObject &binder)

binder Java 对象创建一个新的对象。

另请参阅 transact

QJniObject QAndroidBinder::handle() const

返回值对于调用本包装器没有涵盖的Java API非常有用

[虚拟] bool QAndroidBinder::onTransact(int code, const QAndroidParcel &data, const QAndroidParcel &reply, QAndroidBinder::CallType flags)

默认实现是一个返回false的占位程序。用户应重写此方法以从调用者获取事务数据。

code 表示要执行的操作。 data 是调用者发送的序列化数据。
reply 是要发送给调用者的序列化数据。
flags 是额外的操作标志。

警告:此方法在Binder线程中被调用,与创建此对象的线程不同。

另请参阅 transact

bool QAndroidBinder::transact(int code, const QAndroidParcel &data, QAndroidParcel *reply = nullptr, QAndroidBinder::CallType flags = CallType::Normal) const

执行IPC调用

code 表示要执行的操作。应该在 FIRST_CALL_TRANSACTIONLAST_CALL_TRANSACTION 之间。
data 是要发送到目标的数据。
reply(如果已指定)是来自目标的数据。如果你不感兴趣返回值,可以是 nullptr
flags 是额外的操作标志。

成功时返回true

© 2024 Qt公司有限公司。此处包含的文档贡献归各自所有者所有。提供的文档受 GNU自由文档许可证版本1.3 的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰的Qt公司及其在全球的子公司和附属公司的注册商标。所有其他商标均为各自所有者的财产。