这是一个为方便在Qt中调用Android方法的库。
在传统Qt中若要显示一个Toast需要编写以下代码:
QJniObject javaString = QJniObject::fromString("Message");
QJniObject toast = QJniObject::callStaticObjectMethod("android/widget/Toast", "makeText",
"(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;",
QNativeInterface::QAndroidApplication::context().object(),
javaString.object(),
jint(0));
toast.callMethod<void>("show");
而使用本库时只需这么写:
#define QT_ANDROID_API_AUTOUSE
#include <AndroidContext>
#include <android/widget/Toast>
auto toast = Toast::makeText(CONTEXT, QStringLiteral("Message"), 0);
toast.show();
在你的CMake中添加以下:
include(FetchContent)
FetchContent_Declare(androidapi
GIT_REPOSITORY https://github.com/YJBeetle/QtAndroidAPI.git
GIT_TAG origin/Qt6
SOURCE_SUBDIR android-31
)
FetchContent_MakeAvailable(androidapi)
并且在你的Target之后添加链接库
target_link_libraries(${PROJECT_NAME} PRIVATE QtAndroidAPI)