gpt4 book ai didi

android - Qt/QML Android发送自定义Intent(分享URL)的最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:55 25 4
gpt4 key购买 nike

我想知道是否有关于从 QML(或 c++ 就此而言)发送自定义 android Intent 的最佳实践技巧。

我应该创建一个自定义的 android Activity 并使用 QAndroidJniObject 类来调用它还是有更好的方法?

我的目的是创建一个从 QML 到其他 Android 应用程序的简单共享 URL 功能。

谢谢

最佳答案

使用额外的静态方法扩展 QtActivity:

package org.whatever

public class YourActivity extends org.qtproject.qt5.android.bindings.QtActivity
{
private static YourActivity instance;

YourActivity() {
instance = this;
}

public static void shareUrl(QString url) {
//create intent here
//can use instance object
}
}

在 C++ 端使用 QAndroidJniObject 调用 shareUrl 方法

class QmlInterface : public QObject
{
Q_OBJECT
public:
QmlInterface();
Q_INVOKABLE void shareUrl( QString url );
};

和实现:

void QmlInterface:: shareUrl( QString url )
{
#ifdef Q_OS_ANDROID
QAndroidJniObject::callStaticMethod( "org/whatever/YourActivity",
"shareUrl",
"(Ljava/lang/String;)V",
QAndroidJniObject::fromString( url ));
#endif
}

在 Java 端使用静态方法可以显着简化 jni 调用,因为您不必获取 Activity 实例。因为需要Activity上下文来发送Intent静态instance成员对象在java端使用。

关于android - Qt/QML Android发送自定义Intent(分享URL)的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22672522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com